見落としを防ぐ!テキストエディタのCR・LF表示、CR・LF・CRLFの違いを確認

CR・LF・CRLFの違いを確認の確認工程を、白い原稿用紙と紫色の半透明装置で抽象的に示したアイキャッチ

テキストエディタでCR・LFを表示・確認するときは、記号名だけで判断せず、同じ本文をCR、LF、CRLFで保存してバイト数を比べます。今回の20行標本では、CR版がCR 20/LF 0、LF版がCR 0/LF 20、CRLF版がCR 20/LF 20でした。検出値はCR、LF、CR+LF、文字数はいずれも180です。失敗したら本番原稿を直さず、三つの検証用コピーを作る前の20行標本へ戻ります。

タイトル固有の結果はpassedです。ただし、外部テキストエディタで改行記号がどう見えるかは確認していません。ここで合格したのは、三形式のバイト構成と検出結果を同じ標本で区別できたことです。

CR・LF・CRLFは改行を表すバイトの組み合わせ

CRはキャリッジリターン、LFはラインフィードの略です。テキストファイルでは、改行をCRだけ、LFだけ、またはCRにLFを続けたCRLFで表す場合があります。画面上ではどれも同じ改行に見えることがあるため、表示だけで形式を決めるのは危険です。

違いを確かめるときは、本文、論理行数、文字コードをそろえ、改行だけを変えます。比較対象をそろえないと、ファイルサイズの差が改行によるものか本文によるものか分かりません。

同じ20行で得た数値

標本は同じ内容を持つUTF-8ファイル三つです。各ファイルには20個の改行を置き、改行形式だけを変えました。

形式 検出値 文字数 CRバイト LFバイト 総バイト数
CR CR 180 20 0 380
LF LF 180 0 20 380
CRLF CR+LF 180 20 20 400

CRLF版だけ総バイト数が20多いのは、一つの改行に2バイトを使うためです。三つとも文字数が180なので、文字数表示だけでは改行形式を見分けられません。この結果は、改行が20個ある今回の標本に限った実測です。

製品を使わない比較手順

一般的な確認は、次の順序で行えます。

  1. 同じ20行の基準本文を一つ作り、文字コードをUTF-8に固定します。
  2. 複製を三つ作り、改行だけをCR、LF、CRLFへ分けて保存します。
  3. バイトを数えられる検査手段で、CRとLFの個数を別々に取得します。
  4. テキストエディタの検出値と照合します。
  5. 各ファイルを再読込し、本文180文字と論理20行が変わっていないかを確認します。

比較記事の目的は、三形式の違いを数値で説明することです。提出用ファイルをどの改行へ変換するかは、受け取り側の仕様を確認してから別の複製で決めます。

「表示できる」と「保存できる」を分ける

改行記号を画面に見せる機能は、編集時の確認に役立ちます。しかし、画面にCRLFと表示されたことだけで、保存後のバイト列まで同じとは限りません。少なくとも保存後のファイルを読み直し、CRとLFの個数を確認します。

反対に、バイト検査でCRLFと分かっても、外部エディタがどの記号や色で表示するかまでは証明できません。今回のlimitsにあるとおり、外部エディタの改行表示は未確認です。

Rune Studioの製品範囲と実測を分ける

現行Mac版Rune Studioの公開資料では、LF、CRLF、CRを扱い、ステータスバーから改行コードを切り替えられることが確認できます。これはStage 3の製品機能です。

今回のタイトル固有Stage 4では、三つの20行ファイルを検査し、CR/LFバイト数、検出値、180文字、総バイト数を取得しました。画面上の改行記号表示や、別アプリでの見え方はこの実測へ含めません。

別の共通Stage 4では、五つの文字コードの短文をすべてLFとして読み、UTF-8、Shift_JIS、EUC-JPは39字、UTF-16LE、UTF-16BEは40字、作業タブ設定はUTF-8と再取得しました。これは文字コード横断の補助結果であり、CR/LF/CRLF三形式を区別した証拠は上の20行標本です。

Rune Studioの資料にある文字コードエラー時の挙動も、改行比較とは分けます。正確な表現は「変換不能文字が残る間は自動保存を一時停止し、手動保存時に警告する」です。すべての保存を止める機能とは書きません。

戻し先を形式ごとに決める

破損済みデータの完全復元、OCR、バイナリ修復は扱いません。改行を変更した本番ファイルの外部受理も今回の対象外です。

結論:20行なら改行バイトも20組で照合する

同じ20行のUTF-8本文では、CR版が20/0、LF版が0/20、CRLF版が20/20となり、検出値はCR、LF、CR+LFでした。文字数はすべて180で、CRLF版だけ総バイト数が400、ほかは380です。

この記事は三形式の違いを比較する記事です。BOMの有無を判定する作業、Shift_JISで表せない文字を探す作業、UTF-8変換時に改行を選んで保存する作業とは、検索意図も結論も分けます。現行Mac版の対応範囲はRune Studioの商品ページで確認できます。