• 締切済み

RE:\r\nと\nの違い?

下記スレッド http://oshiete1.goo.ne.jp/qa4126744.html で以下のような質問をしていたのですが、 <質問開始> よくメールフォームの本文部分やヘッダー部分の改行などで\r\n又は\nが使用されていますが、\r\nと\nは何が違うのでしょうか? どちらも通常の改行のように思えますが。 <質問終了> 途中で質疑応答が途切れてしまいました。 上記の質問への回答から、私の理解は以下のようになりますが、私の理解は正しいのでしょうか? <私の理解開始> こちらの理解からすると、「\r\n」と「\n」はWindowsにおいては同じ意味。ただし、OSがUnixの場合も考え、「\n」よりは「\r\n」の方がよいということでしょうか? また、「\r\n」と「\n」は改行で、「\r」は復帰。 <私の理解終了> お分かりの方おられましたら、私の理解が正しいか判定をお願いします。

みんなの回答

  • TinyPine
  • ベストアンサー率30% (719/2386)
回答No.2

追伸 アンダーバーにしたら位置がずれないと思ったら、アンダーバーでもずれてしまいました。 AAAAを印字し、そこの位置で下の行に行き、横位置の続きからBBBBを印字する説明の積りでした。

kitty1000
質問者

補足

TinyPineさん ご回答、ありがとうございました。 つまり、PHPにおけるmail関数のメッセージ組み立て部分では、改行はつねに「\n」ではなく、「\r\n」で記述するべきということですか? また、PHPにおけるmail関数のメッセージ組み立て部分で、メッセージの行間に間をあけたくない場合、\r(復帰)で改行すればよいのでしょうか?「\r\n」又は「\n」では、行と行の間に一行空白ができてしまいますが? よろしくお願いします。

  • TinyPine
  • ベストアンサー率30% (719/2386)
回答No.1

もともと\rは復帰(return)、\nは改行(new line)です。 すなわち "AAAA\rBBBB" とするとAAAAとBBBBがダブって印字され、 "AAAA\nBBBB"とすると AAAA ____BBBBと印字されます。(スペースがプロポーショナルに成るといけないのでアンダーバーで表現しました) そして "AAAA\r\nBBBB"とすると AAAA BBBB と印字されます。 ただし、ドライバーやプリンターで\rや\nが検出されると、復帰+改行に変更してしまう機能を持ったり、スイッチで選択出来るものもありますので、ややこしく成ります。

関連するQ&A