【かいぎょうこーど】

改行コード とは?

公開:
💡 文字の列に入れる「ここで次の行」の目印

テキストの行の区切りをデータとして表す制御文字やその組み合わせ。LFやCRLFなどがあり、画面幅に合わせた自動折り返しとは異なります。

📌 このページのポイント
同じ2行を保存する例 UTF-8 / LF A B 保存したバイト列 41 0A 42 合計3バイト UTF-8 / CRLF A B 保存したバイト列 41 0D 0A 42 合計4バイト AとBの間に区切り1つ、末尾にはなし 自動折り返しとは区別する
同じAとBの2行でも、UTF-8のLF版は3バイト、CRLF版は4バイト。バイト数は文字エンコーディングにもよります。
ひよこ ひよこ
ペンギン先生、改行にも種類があるの?
ペンギン先生 ペンギン先生
あるよ。見た目は次の行に移っていても、データではLFという制御文字1つの場合と、CR・LFの2つを並べるCRLFの場合があるんだ。どの表現を使うかはファイルや通信の約束によるね。
ひよこ ひよこ
その違いはファイルの大きさにも出るの?
ペンギン先生 ペンギン先生
UTF-8でAとBの間に区切りを1つ入れ、末尾には入れない例なら、LF版は16進数で41 0A 42の3バイト、CRLF版は41 0D 0A 42の4バイトだよ。
ひよこ ひよこ
画面を狭くしたら行が増えるのも、改行コードのせいなの?
ペンギン先生 ペンギン先生
それは自動折り返しかもしれないね。表示幅によって行を折り返しても、元のテキストに改行コードが増えるとは限らないんだ。データの区切りと見た目の行数を分けて考えよう。
ひよこ ひよこ
どの改行も、全部同じように扱えばいいの?
ペンギン先生 ペンギン先生
受け手がどう解釈するかを確認しようね。Unicodeには行区切りや段落区切りを表す別の文字もあるし、CRLFを2回の改行と数えると空行が増えてしまうよ。また、LFが1バイトという説明はUTF-8などの条件付きで、UTF-16では2バイトになるんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「改行コード」って出てきたら「テキスト内に保存する行の区切りの目印」と思えればだいたいOK!
📖 おまけ:英語の意味
「Newline」 = 新しい行・行の区切り
💬 次の行へ進めるという意味で、その役割を担う文字や組み合わせを指すんだよ

参考資料

← 用語集にもどる