辞書へ戻る規格の一覧

CRLF

しーあーるえるえふ規格

CR(復帰)とLF(改行)の2つの制御文字を続けて並べた、改行の表し方。16進では 0D 0A となる。主にWindowsで採用されており、バイナリエディタでテキストを覗くと、改行のたびにこの「0D 0A」が現れるのが見える。OSによって改行の流儀が違う原因の一つ。

時代背景

ASCIIの文字集合には明示的な行末文字が定義されておらず、システムごとにCRのみ・LFのみ・CR LFという2文字の並びなど、さまざまな行末の表現方式が選ばれてきた。異なるTelnetクライアントとサーバー間の相互運用性を確保するため、Telnetプロトコル(RFC 854)はネットワーク伝送における行末表現として「CR LF」の並びを標準に定めた。RFC本文は「定義された通り、CR LFという並びはNVT(ネットワーク仮想端末)を次の印字行の左マージンに位置させる」と述べ、「CR LFという並びは単一の『改行』文字として扱われ、その組み合わさった動作が意図される場合には常に使われなければならない」と明記している。

現在

この規則により、キャリッジリターンのみが必要な場合は「CR NUL」(CRの後にNUL文字)を使うこと、それ以外の文脈でのCR文字の使用を避けることが定められている。この厳格な規則があることで、受信側システムがCRの後に続く文字を見て、改行なのか複数のバックスペースなのかを区別できるようになっている。今日でも、RFC文書自体はUnix系のRFC Editorのサーバー上ではLF単体で保存されているが、インターネットを通じて伝送される際にはCR LFへと変換される、という運用が続けられている。

種類改行コード
16進0D 0A
主な環境Windows

関連項目

  • CR(キャリッジリターン)「復帰(Carriage Return)」を表す制御文字で、16進では 0D。元はタイプライターで印字位置を行の左端へ戻す動作を指した。単独では古いMac(Mac OS 9以前)の改行コードとして使われ、現在はLFと組んだCRLFの一部として残っている。
  • LF(ラインフィード)「改行(Line Feed)」を表す制御文字で、16進では 0A。元はタイプライターで紙を1行送る動作を指した。単独での改行コードとしてUNIX・Linux・macOSで採用されており、Windowsの CRLF と並ぶもう一つの主流。改行コードの違いはファイルのやり取りで地味につまずく原因になる。
  • ASCII文字を数値に対応づけるための文字コードの基本規格。アルファベットや記号を7ビットの番号で表す素朴な決まりで、これがあったから機械同士が文字をやり取りできるようになった。今の文字コードもこの上に立っている。
  • Shift_JIS日本語をパソコンで扱うために広く使われた文字コード。Windowsや多くの国産ソフトで標準的に使われ、日本のデジタル文書を長く支えた。今もレガシーなファイルや古いソフトの中で出会う、文字化けの背景にもなる規格。

関連技術

この用語を扱った記事

Stirlingの使い方|バイナリエディタでファイルを書き換えてみる

出典