-PR-
解決
済み

改行文字保存時のゴミ

  • すぐに回答を!
  • 質問No.65939
  • 閲覧数151
  • ありがとう数2
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 64% (50/78)

 現在、フォームからのデータ入力などに関して勉強しているのですが、<textarea>からデータを入力すると、1バイトの改行文字が、改行ごとにくっついてきます。
 改行自体はされるんですが、その余計なものが付いてくるのが困っています。何かしらのスクリプトをダウンロードしたときなども、時々改行部分が半角の■に変わってまして、つまり改行されずにごっちゃになって表示されてしまいます(別の方法で置換処理できるので自分はどーでもいいんですが)。
 他のパソコンから同じCGIをアップロード、実行してみると、以外にもそういった影響はありませんでした。何となく、文字コードが機種とか環境などによって違ってるせいかな、とは感じているのですが、対処法が分かりません。
 スクリプトにどういった手を加えれば、これが出ないようにできるのでしょうか?どうかご教授をお願いします。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.3
レベル8

ベストアンサー率 37% (10/27)

UNIX上に改行コードLFで置いていて、Windows系のOSにFTPするときに
ASCIIモードで転送すれば改行コードはLF->CR+LFに変換されます。
逆向きも同様です。

Perlで置換したいならファイルをオープンした後binmodeを指定すれば
CR:\r
LF:\n
で置換出来ます。
s/\n/\r\n/

binmodeを指定しないと、\n自体がプラットフォームに合せて勝手に判
断してしまうため、この手の置換は出来ません。

こんな感じで如何でしょうか?
お礼コメント
Yuya_Tachibana

お礼率 64% (50/78)

 回答ありがとうございます。仰るとおりにしてみたら、見事にできるようになりました。just like magicです(笑)。

 UNIXではCRが余計なせいでゴミが出ていたわけですから、CRを削除してみたらうまくできました。つまり自分がやりたいと思ったときには、既にwindows上CR+LF→UNIX上LFとなっていたんですね。それでUNIX上でのCRが邪魔でゴミが残っていた、という状況だったようです。

 とても助かりました。本当にありがとう御座いました。またなにかありましたら、その時はまた、ご教授をお願いします。
投稿日時 - 2001-04-21 23:48:09
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1

改行コードが違うからですね。 通常Windowsでは改行がCR+LFとなっていて UNIXではLFのみです。従って、改行するたびに CRというごみが入るのです。 そこら辺は置換作業で何とかなりますよ。 #ついでに、CGIをやるなら「メモ帳」はやめて #WZEditorなどの改行コード、文字コードを #指定できるものにしましょう。 ではでは☆ ...続きを読む
改行コードが違うからですね。

通常Windowsでは改行がCR+LFとなっていて
UNIXではLFのみです。従って、改行するたびに
CRというごみが入るのです。

そこら辺は置換作業で何とかなりますよ。
#ついでに、CGIをやるなら「メモ帳」はやめて
#WZEditorなどの改行コード、文字コードを
#指定できるものにしましょう。
ではでは☆
補足コメント
Yuya_Tachibana

お礼率 64% (50/78)

 改行文字が入ったデータファイルが作成される場合、それはUNIXサーバ上でできるものだから問題ない(ゴミが入らない)としても、それをwindowsでダウンロードしようとすると、改行コードのCRが足らないせいで改行されずまとまってしまい、改行部分に半角の■ができてしまうのですね。
 それの逆をする、つまりwindows上で改行したデータファイルをアップすると、CR部である半角■と改行になってしまう、ということでよろしいのでしょうか?

 そのため、それを完全に回避する場合にはUNIXと同じ環境、つまりwindows上でも改行文字をLFのみで指定できるテキストエディタが必要なわけですね(どこかで理解のし間違いがあったら訂正をお願いします)。
 でも・・・WZEditorって、高過ぎなんですけど・・・。他にいい方法はありませんか?

 置換で何とかなると仰いましたが、置換でLFをCR+LFにするようなことができるんでしょうか?可能でしたら、是非その方法を教えて下さい(そういうのって本にのってませんね)。
 よろしくお願いします。
投稿日時 - 2001-04-21 05:16:11


  • 回答No.2
レベル12

ベストアンサー率 67% (310/456)

スクリプトに於いて。。 データを読み込み,希望の形式に変換してから保存する。 これだけでは?
スクリプトに於いて。。
データを読み込み,希望の形式に変換してから保存する。
これだけでは?
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ