• ベストアンサー

キャリッジリターンとラインフィードの違いは?

キャリッジリターンとラインフィードは似ていますが、どこが違うところはありますでしょうか。また、その特徴的など教えていただけると幸いです。 私の解釈としては「キャリッジリターンとラインフィードとも同じだが、OSによって異なっているため、キャリッジリターン(CR)とラインフィード(LF)を合わせて使うことを推奨する。WindowsはCR+LFで改行できるが、MacはCR、UnixはLFでないと改行されない」ということですが、皆様はどう思いますでしょうか。

  • PHP
  • 回答数3
  • ありがとう数17

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

  • ベストアンサー
回答No.2

原則的には、CRは左マージン位置に戻ることでLFは1行下に移るこ と。動作が全く違います。 とはいえ、CRする時には十中八九LFもしたい、でないと同じ行に重 ねて印字することになるってんで、CRだけでCR+LFの動作をするシン プルなプリンタやタイプライタも存在しましたし、一度の命令で1行 全部を同時に印字するラインプリンタではCRという概念がなく、LF のみで次の行の印字準備が整っていました。そこらへんの歴史的な 経緯で、シンプルなテキストファイルで改行を示すための機能文字 をどうするかが色々と分離していったんです。 > WindowsはCR+LFで改行できるが、MacはCR、 > UnixはLFでないと改行されない CR+LFにはCRもLFも含まれていますから、改行にCR+LFを使ったテキ ストはMacでもUNIXでも改行されます。行末や行頭に妙なコードが残 るだけ。DOSはCR+LF両方書かないと改行出来ないですね。

masa_go
質問者

お礼

ご回答ありがとうございました。 参考にさせていただきます。 >原則的には、CRは左マージン位置に戻ることでLFは1行下に移るこ と。 この点がとても参考になりました。

その他の回答 (2)

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.3

#CR(0d)とLF(0a)の違いについては既出なので・・ phpで「改行」を書くときには環境依存したくないので「PHP_EOL」を使います。そのまんま「End of Line」の意味ですが環境によってCRLFだったりLFのみだったりします。

masa_go
質問者

お礼

ご回答ありがとうございました。 参考にさせていただきます。 >phpで「改行」を書くときには環境依存したくないので「PHP_EOL」を使います。 この点が特に参考になりました。

  • okg00
  • ベストアンサー率39% (1322/3338)
回答No.1

http://ja.wikipedia.org/wiki/%E6%94%B9%E8%A1%8C%E3%82%B3%E3%83%BC%E3%83%89 本来は別物です。 キャリッジリターンはカーソルを行頭に持ってくる(カーソルの行位置はそのままなので、次に書き出すと文字が重なります)。 ラインフィードは新しい行にカーソルを移動させる(カーソルの左右位置はそのままなので、次に書き出すと左が空白のまま途中から書き出す)。 OSによって改行コードが異なっているのは質問の通りですが、UnixベースとなったMacOSXではLFになっているそうです。

masa_go
質問者

お礼

ご回答ありがとうございました。 参考にさせていただきます。 キャリッジリターンとラインフィードは別物でしたね。

関連するQ&A

  • キャリッジリターンとラインフィードの違い

    キャリッジリターン(CR+LF)とラインフィード(LF)の違いについて良く分かりません。 Windowsの場合、改行(Enter)はキャリッジリターン(CR+LF)となるとのことですが、キャリッジリターン(CR+LF)の使用されたコードをUnix系サーバ(改行がLF)へ転送するとちゃんと動かないと聞きます。 質問1: そこで、分からないのがWindowsXPにインストールされたテキストエディタ(TeraPad)やDreamweaver(MX2004)で作成したPHPコードの中の改行は、やはりラインフィード(LF)ではなく、キャリッジリターン(CR+LF)となってしまっているのでしょうか? 質問2: 実際にPHPコードの中の改行がラインフィード(LF)になっているか又はキャリッジリターン(CR+LF)になっているかは、どのように見分けるのでしょうか? 質問3: PHPコードの中の改行がキャリッジリターン(CR+LF)になっている場合、それをそのままLinux系のサーバ(FreeBSD)にアップロード(つまり、バイナリモードでアップロード)すると、やはりそのプログラムはちゃんと動かないのでしょうか? 質問4: PHPコードの中のキャリッジリターン(CR+LF)を、コードを崩さずに、一気にラインフィード(LF)に返還する方法は、ありますか? 注意: このスレッドでは、ラインフィード(LF)やキャリッジリターン(CR+LF)など、異なる改行コードが異なるOSで使われ初めた理由や経緯をお聞きしているのではありません。プリンター関連の質問では、ないと言うことです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • テキストファイルの改行について

    よろしくお願いします。 改行コードには、 ・LF(ラインフィード、0A、\n) ・CR(キャリッジリターン、0D、\r) かあるようですが、 通常、エディタで改行した場合、 CR+LFで設定されていると思います。 改行コードが混在しているファイルがあり、 LFのみの場合はLF(改行)を削除したいのですが、 私が使っているエディタ「TeraPad」では、この違いを認識しないようです。 (改行マークが同じだった) 改行コードの違いを認識でき、かつLFのみの場合は削除できるようなエディタ、 またはその方法はないでしょうか? ※EmEditorとVxEditorも試しましたが、どちらも違いを認識できませんでした。

  • Windowsでの改行コード

    HTMLを書くのにあたりUNIXサーバが主流なのだから、 UTF-8、改行コードはLFで行うことを勧められました。 Windowsの改行コードはCR LFだそうですが、 LFにした場合、Windows上でJAVAScriptなどのテストをしたときに 何か不都合があるのでしょうか。 改行コードが CR LF でUNIX上でトラブルになった事例は見つけました。 反対のことが良く分かっていません。よろしくお願いします。

  • 改行コードについて教えてください

    EXCEL VBAでの改行コードが分からないので教えてください。 Chr(13)キャリッジリターンとChr(10)ラインフィードはどう違うんでしょうか? 宜しくお願い致します。

  • C言語での改行コードの扱いについて教えてください。

    改行コードは一般的に、 Windows・・・「CR+LF」 UNIX or Linux・・・「LF」 だと思うのですが、改行コードが「LF」のファイルをWindows上で、C言語で編集したらどういった改行コードになるのでしょうか。 (例えば、単純にファイルを1レコードずつ読み込んで別ファイルに書き込むといった処理) 出力時に「CR+LF」になってくるのでしょうか?それともまったく別のものになってしまうのでしょうか? 詳しい方、ぜひ教えてください。 ※改行コード「LF」のテキストファイルは、UNIXサーバから「HULFT」というファイル転送ソフトの「バイナリ転送モード」でWindowsサーバに送られてくる予定です。

  • 【unix】nkfで文字コードを変えずに改行コードを変えたい

    unix(BSD)初心者です。 PHP経由でunixを操作、ファイルの加工をしております。 nkfコマンドにてLF改行をCR+LF改行にしたいのですが、 ・文字コードは無変化で改行コードだけ変える などということはできるのでしょうか? いろいろな文字コードのファイルが混在している場合に文字コードはそのまま保ちつつ改行コードはCR+LFに統一したいのです。 お詳しい方よろしくお願いします。

  • 改行コードについて

    HTMLフォームのテキストエリアで改行した場合の処理についてご質問します。 Windowsのローカル環境で試しています。 改行コードLFでPHPを作成しています。 ○改行コードの認識 LF(\n) Unix,Mac OS X CR(\r) Mac OS 9 CRLF(\r\n) ○テキストエリアからの入力値の処理 CRLF、CRをLFに変換しています。 $value= str_replace ("\r\n", "\n", $value); $value = str_replace ("\r", "\n", $value); このあとDBに値を格納しています。 ○出力の際の処理 DBから値を取得。 phpのprint関数で下記を出力。 <textarea >${value}</textarea> 上記処理で、ローカル、サーバともに正常に動作しています。 しかし改行コードがLF(\n)なのでCRLF(\r\n)のWindowsで表示したときには問題が起きそうな気がします(実際には正常に動作)。 なにかしっくりこなくて質問させていただきました。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 改行コードについて

    改行コードがよく解らないので説明お願いします 様々なサイトの改行コードの説明で LinuxはLF MacはCR WindowsはCRLFと説明しています 私の認識では LF=\n CR=\r CRLF=\r\n だと思っていました ここで疑問なのですが 確かに私の利用した環境ではLinuxの改行コードは\n, Windwosの改行コードは\r\nでした ところがMacの標準のメモ帳(テキストエディット)で文字を入力しても改行コードは\nです 確認方法は od -cというコマンドとfileというコマンドです これはつまりCRではなくLFということですよね? では、なぜ多くのサイトではMacはCRと説明しているのでしょうか? そもそもCR=\rという認識が間違ってるのでしょうか? よろしくお願いします

  • is_spaceについて

    この関数はC言語における空白相当の文字か否かを判定するものですが、その中に出てくる「水平タブ」'\t'「垂直タブ」'\v'「キャリッジリターン」'\r'「ラインフィード」'\f'はどのようにキーを打ったらいいのですか? 例)改行→Enterキー

  • エクセル(VBA)でファイル出力時

    エクセル(VBA)でテキストファイル出力時 リターンコードはどうやって記述するのでしょうか? chr(9)はタブ chr(10)はラインフィード chr(13)はキャリッジリターン らしいんですがリターンコードはなんでしょうか? 宜しくお願いします