「^M」この文字について

UNIX上で動くプログラムを作って、tplファイルのキャッシュファイルを生成したら
ファイルの中に「^M」このような文字が毎行行末に出力されているのですが、
これは何でしょうか。気にしなくても大丈夫でしょうか。
あと「^M」が出る原因はどんなことが考えられるでしょうか

回答の条件
  • 1人5回まで
  • 登録:2009/02/06 01:58:54
  • 終了:2009/02/07 03:29:04

ベストアンサー

id:Craftworks No.2

Craftworks回答回数20ベストアンサー獲得回数62009/02/06 12:24:07

ポイント35pt

改行コードです。

通常、Windows では CR+LF、Mac では CR、Unix では LF がそれぞれ改行コードとして認識されていますので、Windows 上で作成したファイルを Unix に持ってくると、CR+LF の LF だけが改行文字として認識され、CR が残ります。この辺りが原因ではないでしょうか。

作成しているのがどういうプログラムかは分かりませんが、Web ブラウザに出力するものであれば、ブラウザ上では ^M は表示されませんので気にされなくても良いと思います。

気になるのであれば、CR と LF は文字コードだと、それぞれ \x0D と \x0A になりますので、この辺りをキーワードの探してみてください。

その他の回答(2件)

id:hyo-suke No.1

hyo-suke回答回数43ベストアンサー獲得回数52009/02/06 02:10:27

ポイント30pt

改行文字が CR + LF になっているのだと思います。(通常、UNIXではLFのみ)

何のプログラムなのかわかりませんが、動作しているのであればそれほど問題ではないと思います。

Emacsを使っているのであれば、以下で消そうと思えば消せます。

http://d.hatena.ne.jp/ymotongpoo/20081012/1223822978

id:tiritomato

ありがとうございました

2009/02/06 02:25:59
id:Craftworks No.2

Craftworks回答回数20ベストアンサー獲得回数62009/02/06 12:24:07ここでベストアンサー

ポイント35pt

改行コードです。

通常、Windows では CR+LF、Mac では CR、Unix では LF がそれぞれ改行コードとして認識されていますので、Windows 上で作成したファイルを Unix に持ってくると、CR+LF の LF だけが改行文字として認識され、CR が残ります。この辺りが原因ではないでしょうか。

作成しているのがどういうプログラムかは分かりませんが、Web ブラウザに出力するものであれば、ブラウザ上では ^M は表示されませんので気にされなくても良いと思います。

気になるのであれば、CR と LF は文字コードだと、それぞれ \x0D と \x0A になりますので、この辺りをキーワードの探してみてください。

id:hong7 No.3

hong7回答回数157ベストアンサー獲得回数52009/02/07 00:28:47

ポイント15pt

dosの改行記号です。気になるなら、nkfなどで変換してください。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません