改行コードの違い:CRLF・LF・CRはどこで使い分けられているか
更新日:2026-09-17
テキストファイルの「改行」は、見えませんが実体のあるバイトです。しかも1種類ではありません。
3種類ある
| 名前 | バイト | 由来 | おもに使われる環境 |
|---|---|---|---|
| CRLF | 0D 0A | 復帰+改行 | Windows、多くのネットワーク上の仕様 |
| LF | 0A | 改行 | Linux、macOS(現行)、Web |
| CR | 0D | 復帰 | 古いMac OS(9まで) |
CR は Carriage Return(キャリッジリターン)、LF は Line Feed(ラインフィード)の略です。もとはタイプライタの動作で、CR が「行の先頭に戻す」、LF が「紙を1行送る」でした。この2つを続けて行うのが CRLF です。
どこで問題になるか
1行にまとまって見える
LF だけのファイルを、CRLF しか改行と認識しない古いソフトで開くと、すべての行が1行につながって見えます。Windowsの標準のメモ帳は以前この挙動でしたが、現在は LF も扱えます。
行末に余計な文字が見える
逆に、CRLF のファイルを LF だけを改行と見るソフトで読むと、各行の末尾に CR が残ります。表示上は見えないことが多いのですが、プログラムで比較すると一致しません。
「見た目は同じなのに一致しない」の原因になります
CSVを読み込んで値を比較したときに、末尾に \r が残っていると別の文字列として扱われます。画面上は同じに見えるため、原因を見つけにくい不具合です。
CSVでは CRLF が標準
CSVの標準的な仕様では、レコードの区切りは CRLF とされています。ただし実際には LF のファイルも広く流通しており、多くのソフトはどちらも読めます。
当サイトのCSV一括変換は CRLF で書き出しています。表計算ソフトや古いシステムに渡す場面を想定した選択です。
値の中に改行が入る場合
CSVでは、セルの値そのものに改行を含められます。その場合は値全体を引用符で囲みます。囲まないと、そこで行が分かれてしまいます。
値の中の改行
名前,備考
山田,"1行目
2行目"
引用符で囲まれた中の改行は、行の区切りではなく値の一部として扱われます。
バージョン管理での扱い
Gitなどのバージョン管理では、改行コードの違いが「全行が変更された」という差分として表れることがあります。WindowsとLinuxで作業する人が混在するとよく起きます。
対策として、リポジトリ側で改行コードをそろえる設定を入れるのが一般的です。ファイルごとに扱いを指定することもできます。
確認のしかた
改行コードは見た目ではわかりません。確認するには次のような方法があります。
- テキストエディタのステータスバーに表示される(多くのエディタが対応している)
- 16進数で中身を見るツールで、
0D 0Aか0Aかを確かめる - 行数を数えるコマンドの結果が想定と合うかを見る
混在しているとき
1つのファイルの中で CRLF と LF が混ざっていることがあります。複数の環境で編集されたファイルや、プログラムで一部だけ書き足したファイルで起こります。
読み込む側が寛容であれば問題になりませんが、行数のずれや比較の失敗につながることがあります。どちらかにそろえておくほうが確実です。
まとめ
- 改行には CRLF(
0D 0A)・LF(0A)・CR(0D)の3種類がある - Windowsは CRLF、LinuxとmacOSは LF が中心
- CSVの標準は CRLF だが、実際は LF も広く使われている
- 行末に CR が残ると、見た目が同じでも文字列が一致しなくなる
- 値の中の改行は引用符で囲んで表す
CSVを読み込んで列を選び、まとめて変換できます。文字コードを指定して保存できるので、化けたファイルの作り直しにも使えます。
CSV一括変換を使う →登録不要・完全無料/入力内容はサーバーに送信されません
この記事の位置づけ
仕様と一般的な動作を整理したものです。実際の挙動はブラウザやアプリの実装、受け取り側のシステムによって変わることがあります。業務で使う場合は、実際のデータで往復して確かめておくと安全です。
参考・出典
- RFC 3986: Uniform Resource Identifier (URI)
- RFC 4648: The Base16, Base32, and Base64 Data Encodings
- WHATWG Encoding Standard
※2026年9月時点の仕様と、主要なブラウザでの動作にもとづいています。