普段特に意識せずに使っている改行コードを改めて整理した。改行コードって何?という方向けでも分かるように備忘録として残しておきます。
改行コードとは
普段メモ帳などのテキストエディタを使用して文章を入力していれば当たり前のように改行すると思います。
この「改行」、人は目で見てわかりますがコンピュータにはわかりません。そのため、テキストの中にコンピュータが認識できる形で改行を指示する「改行コード」を含める必要があります。
私たちは特に意識せずエンターキーを押していますが、その時に自動で改行コードが適用されています。テキストエディタによっては改行を表す矢印のマーク(↓、←など)が表示されます。Windows11のメモ帳では確認できませんでした…
イメージにするとこんな感じ
データ1,データ2,データ3(改行の指示)
データ4,データ5,データ6(改行の指示)
データ7,データ8,データ9そしてこの改行コードには「CR」「LF」「CRLF」の3種類が存在します。
CR【Carriage Return】
キャリッジリターン。行頭復帰とも呼び、カーソルを行の先頭へ戻すという意味がある。
- 使用OS:古いMacOS(バージョン9まで)
- 正規表現:\r
- 表記:←
なので、これだけでは次の行にカーソルは移動せず先頭に戻るだけです。そのため、ユーザーが利用するソフトウェアなどでCRを改行と判別し、改行が実行されたときに自動で次の行にカーソルが移動する処理を組み込んでいたそうです。
LF【Line Feed】
ラインフィード。カーソルを次の行に移動させるという意味です。
- 使用OS:Unix系OS(Linuxなど)
- 正規表現:\n
- 表記:↓
CRLF【Carriage Return/Line Feed】
キャリッジリターンとラインフィードの組み合わせ。カーソルを行の先頭に戻し次の行へ移動させるという意味です。
- 使用OS:Windows
- 正規表現:\r\n
- 表記:↲
ちなみにWindows搭載のPCでメモ帳を開くと右下にCRLFと表示されます。

まとめ
このようにOSによって標準で使用されている改行コードが違います。そのため、OS間やシステム間でデータのやり取りを実装する場合はこの改行コードの違いによってエラーの発生につながることもあります。OSによって改行コードが違うなんてどうしてそんなぁ…と思いますが、実装するときは注意したいものです。