改行コード CR、LF、CRLFの意味と違い

現状、CR、LFと双方を組み合わせたCRLFの3種類が主な改行コード

OSやアプリなど環境によってどれが使われるか違うので、プログラミングやテキストデータを扱う際にはいろいろ注意が必要だったり。

CRとLFの違い

CRとLFはそれぞれ、復帰と行送りの意味を持つ略語です。

  • Carriage Return:キャリッジリターン(行頭復帰)
  • LineFeed ラインフィード(行送り)

ざっくり言えばキャリッジリターン(CR)はカーソルが戻るだけ。

ラインフィード(LF)は行を送るだけです。以下違いについて詳しく補足解説。

行頭への復帰を意味するCarriage Return

CRは行頭へ戻る「行頭回帰」

CR=Carriage Return=キャリッジリターンは行頭への復帰を意味します。

タイプライターでイメージするとわかりやすいですが、キャリッジリターンはただ行末から同じ行の頭へ戻るだけ。

なので、キャリッジリターン後にタイプライターを打ち始めると、すでにある文字の上に印字されてしまいます。

もしPCならこれまで打ち込んだ文章の前に新しい文章を打ち込むことになってしまいます。

行送りを意味するLine Feed

LFは次行に送る「行送り」

一方、LF=Line Feed=ラインフィードは次の行へ送るだけ

なので、画像のように10文字目でラインフィードだけして再度打ち始めると、次の行の11文字目の場所から書き始めてしまい、前に10文字分の空白ができてしまいます。

本来はCRLF両方組み合わせてこそ改行、だけど

行送りと行頭回帰を組み合わせたCR+LF

そういう意味では、行頭に復帰するキャリッジリターンと行を送るラインフィード、両方をやってこそ改行といえます。いわゆるCRLFがそう。

ただ、これはあくまでもCRとLFが本来持っている意味でのお話。

いまどきのPCやスマホなどではCRLFはもちろんのこと、CR単体やLF単体改行として機能します。

採用する文字コードはOSやアプリごとに違いが

改行コード主な使用OS
CRMacOS 9以前
LFMacOS X以降、UbuntuほかLinux系、UNIX
CRLFWindows

CRLFを使っているOSはWindowsぐらい。

Mac OS 9まではCR単体でたし、Mac OS X以降やAndroid、Linux系のOSなどではLFが使用されてします。

あとGoogleスプレッドシートのセル内改行なんかもLF単体。ExcelもLF単体だったような。

唯一、CR単体だったMacもLFに切り替えていますし、あとはWindowsだけLFにしてくれれば統一されていいなぁ、なんて思うんですが……

テキストエディタではアイコンの違いも

サクラエディタでの改行コードの表示

ちなみに、改行コードは表示アイコンにも違いがあります。

改行コード表示アイコン
CR
LF
CRLF

上記がエディタでの表示。テキストエディタによっては上記のように表示されます。

キャリッジリターンは行頭に戻るだけだから左矢印だけ。ラインフィードは次行に送るだけだから下矢印だけ。

両方を組み合わせたCRLFは下と左矢印を組み合わせた記号になっています。よく見るEnter記号ですね。