現在、フォームからのデータ入力などに関して勉強しているのですが、<textarea>からデータを入力すると、1バイトの改行文字が、改行ごとにくっついてきます。
改行自体はされるんですが、その余計なものが付いてくるのが困っています。何かしらのスクリプトをダウンロードしたときなども、時々改行部分が半角の■に変わってまして、つまり改行されずにごっちゃになって表示されてしまいます(別の方法で置換処理できるので自分はどーでもいいんですが)。
他のパソコンから同じCGIをアップロード、実行してみると、以外にもそういった影響はありませんでした。何となく、文字コードが機種とか環境などによって違ってるせいかな、とは感じているのですが、対処法が分かりません。
スクリプトにどういった手を加えれば、これが出ないようにできるのでしょうか?どうかご教授をお願いします。
No.3ベストアンサー
- 回答日時:
UNIX上に改行コードLFで置いていて、Windows系のOSにFTPするときに
ASCIIモードで転送すれば改行コードはLF->CR+LFに変換されます。
逆向きも同様です。
Perlで置換したいならファイルをオープンした後binmodeを指定すれば
CR:\r
LF:\n
で置換出来ます。
s/\n/\r\n/
binmodeを指定しないと、\n自体がプラットフォームに合せて勝手に判
断してしまうため、この手の置換は出来ません。
こんな感じで如何でしょうか?
回答ありがとうございます。仰るとおりにしてみたら、見事にできるようになりました。just like magicです(笑)。
UNIXではCRが余計なせいでゴミが出ていたわけですから、CRを削除してみたらうまくできました。つまり自分がやりたいと思ったときには、既にwindows上CR+LF→UNIX上LFとなっていたんですね。それでUNIX上でのCRが邪魔でゴミが残っていた、という状況だったようです。
とても助かりました。本当にありがとう御座いました。またなにかありましたら、その時はまた、ご教授をお願いします。
No.1
- 回答日時:
改行コードが違うからですね。
通常Windowsでは改行がCR+LFとなっていて
UNIXではLFのみです。従って、改行するたびに
CRというごみが入るのです。
そこら辺は置換作業で何とかなりますよ。
#ついでに、CGIをやるなら「メモ帳」はやめて
#WZEditorなどの改行コード、文字コードを
#指定できるものにしましょう。
ではでは☆
この回答への補足
改行文字が入ったデータファイルが作成される場合、それはUNIXサーバ上でできるものだから問題ない(ゴミが入らない)としても、それをwindowsでダウンロードしようとすると、改行コードのCRが足らないせいで改行されずまとまってしまい、改行部分に半角の■ができてしまうのですね。
それの逆をする、つまりwindows上で改行したデータファイルをアップすると、CR部である半角■と改行になってしまう、ということでよろしいのでしょうか?
そのため、それを完全に回避する場合にはUNIXと同じ環境、つまりwindows上でも改行文字をLFのみで指定できるテキストエディタが必要なわけですね(どこかで理解のし間違いがあったら訂正をお願いします)。
でも・・・WZEditorって、高過ぎなんですけど・・・。他にいい方法はありませんか?
置換で何とかなると仰いましたが、置換でLFをCR+LFにするようなことができるんでしょうか?可能でしたら、是非その方法を教えて下さい(そういうのって本にのってませんね)。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS Windowsのformでtextareaに入力すると改行が反映されません 2 2023/06/01 11:50
- gooブログ 文字数の自動改行設定方法 3 2022/03/27 16:50
- Visual Basic(VBA) 【VBA】特定の文字で改行(次の行)に行きたい。 3 2022/04/11 17:20
- マウス・キーボード パソコンの外付けキーボードについて ノートパソコンて外付けキーボードを使用すると、入力うまく行きませ 4 2023/01/04 23:02
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- Excel(エクセル) エクセルのAltを押すと「自動保存」「上書き保存」・・・に白抜きの「1」「2」・・・が出る。 2 2023/08/11 11:39
- 政治 日本で梅毒が増え続けているのは自民党が性犯罪に甘いからですよね? 7 2022/11/04 11:25
- PHP PHPでテキストファイルに保存した時の改行問題 1 2022/11/19 15:07
- AJAX ワードでA3横の画面にして、文字入力はA4縦にしたい 1 2023/05/04 13:59
- マウス・キーボード 何故、ローマ字や英語を全角で打つ? 5 2022/05/15 09:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBA メール作成について ...
-
Rstudioによるテキストマイニン...
-
alertの警告文を2行にしたい
-
Line Inputにて改行があっても...
-
【HELP!!】Excelから保存したtx...
-
連想するもの教えてください
-
MACの改行コード変更について教...
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
COBOLのCOMP形式について
-
ポインター引数の関数でコンパ...
-
char str[256]の256の意味は?
-
バイト列とバイナリ列の違いが...
-
エクセルシート名の制限を変更...
-
Javaで日本語1文字のバイト数
-
Excel 1セル当りの文字数が2...
-
SQLで1バイト、2バイト混在...
-
Rでのスクリプトのご相談
-
バイナリとBCDコード
-
3バイト文字(UTF-8)をprintfで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBA メール作成について ...
-
Excelで、HTMLタグだけを削除す...
-
Line Inputにて改行があっても...
-
Rstudioによるテキストマイニン...
-
CGIを勉強しています。¥n(改...
-
改行コードがそのまま表示され...
-
【HELP!!】Excelから保存したtx...
-
perlで、[ \\r\\n , \\n ]の意...
-
エクセルで「改行コード」を「...
-
テキストエリアの<br />を非表...
-
連想するもの教えてください
-
HTMLにcgiを使って表示して...
-
テキストエリア内でタグ<BR>を...
-
kboardのイベントを増やしたい
-
textarea形式のフォームで複数...
-
ホームページビルダーで行間を...
-
Yomi-Searchについて教えてくだ...
-
テキストボックスに入力された...
-
KENT-WEBのClipMailでのチェッ...
-
datの改行
おすすめ情報