マシンやソフトによって行の扱い方が違います。一応知っておいた方がトラブルが減るでしょう。
普通のテキストをコンピュータで表示すると、次の様に見えますね。
これは1行目で これは2行目で これは3行目です
でも、実際にテキストファイルを調べてみると、ほとんどのコンピュータでは次の様な内容になってます。
これは1行目で<行の区切り>これは2行目で<行の区切り>これは3行目です<行の区切り>
つまり、行の区切り(line break)を表すための制御文字が入ってるだけであり、データとしてはダラーと繋がってるのです。
行の区切りを表す制御文字のことをニューライン(newline)といいますが、これは現在のASCIIコード表にはありません。ほとんどのコンピュータでは、CR(復帰)とLF(改行) を使っています。
コード 2進数 16進数 DOS系 (DOS, OS/2, Windows等) -------------- CR LF 00001101 00001010 0D 0A Mac系 (MacOS, 漢字Talk) ------------------- CR 00001101 0D UNIX系 (BSD, Linux, NEXTSTEP, SystemV等) --- LF 00001010 0A
マシンやソフトによって使うコードが違うのです。
なお、メールでの行の扱いは[4]で説明します。
行の扱いを間違えると、行頭や行末に変な文字が見えたり、1行に見えたりします。[11] 文字化けすると、こう見える!参照
ANSI規格やJIS規格等では、「動作位置を先頭に戻すだけで、行は変わらない」のがCRで、「動作位置を一行下げるだけで、行頭には戻らない」のがLFということになってます。
でも、実際の使われ方がそうではない場合が多く、混乱しますね。
JIS規格だと「LF」の事を「改行」と言います。
ところが、「行の区切り」のことも「改行」と呼ぶ事があるので、混乱します。
英語だと、「LF」は「line feed」で、「行の区切り」は「line break」なので、ちゃんと区別されてます。
本来、行の区切りを表す制御文字は「newline」といい、古いASCIIではLFと同じに扱って良かったのですが、現在のASCIIにはありません。