• ベストアンサー

perlで作成したファイルが改行がこわれる

ここでよいのか解りませんが、質問させてください。 turbo linux6.5環境で、perlを使いデータ編集を行っています。 出力したファイルの文字コードはSJISになっています。 ただこのファイルをFTPでダウンロードすると改行部分がおかしくなっています。 秀丸などのエディタから見ると改行が入ったように見えるのですが、メモ帳で見ると、改行部分が縦棒記号に変っていて改行が入っていません。 対処方法を知っているかた教えてください。

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

  • ベストアンサー
  • haporun
  • ベストアンサー率40% (230/562)
回答No.2

Perlをつかってるなら、出力するときに行の最後を\nじゃなくて、chr(13) . chr(10)にするとよいでしょう。

80yen
質問者

お礼

回答ありがとうございます。 chr(13) . chr(10)に変えてできました。 あせっていたので、大変助かりました。

その他の回答 (1)

  • Spur
  • ベストアンサー率25% (453/1783)
回答No.1

UNIXサーバでは改行コードが「LF」で、Macは「CR」 そしてWindowsは「CR+LF」です。 Linuxから改行コードを変換せずにftpしたファイルをWindowsのエディタで見れば、「CR」がありませんので、当然改行せず、どんどn続いてしまいます。そして、「LF」の部分は表示できないので縦棒のようになります。 ftpの時に改行コードを変換できるftpツールを使うか、ダウンロードした後で改行コードを変換してください。

80yen
質問者

お礼

回答ありがとうございます。 linuxとwindowsで改行コードが違うのを忘れていました。SJISとEUCの違いかと思って調べていました。 「CR+LF」の違いは勉強になりました。 ありがとうございます。