中級者向け 知識

【知識】プログラムで使用する改行コードCRLF、LF、CRの意味は何?

パソコン・モバイル
この記事は約5分で読めます。

文中の説明画像をクリックすると拡大します。

改行コードのCRLF、LF、CRの意味は何?

改行コードとは、改行を実行するためのコードです。

PHPなどでプログラムを記述する時は、改行コードを意識しておく必要があります

改行コードの種類としては、以下があります。

  • CRLF
  • LF
  • CR

それぞれ、対応OSも違います。PHPって何だっけ?という方はこちらをご覧ください。

【知識】PHPって何?
PHPは、サーバーサイドで動作するプログラミング言語で、動的にページを生成することができます。プログラミング言語にはコンパイル言語とスクリプト言語がありますが、PHPは記述されたソースコードを一行ずつ機械語に翻訳しながら実行するスクリプト言語です。

CRLF

CRLFは、Carriage Return + Line Feedの略称です。

意味としては、「カーソルを左端に移動し、次の行へ移動する」という、後述のCRとLFの組み合わせです。

コードで書く場合は「\r\n」と記述します。

対応OS:Windows OS

LF

LFは、Line Feedの略称です。

カーソルを次の行へ移動する」という意味です。

コードで書く場合は「\n」と記述します。

対応OS:Linux やUNIX(Mac OS X以降)

CR

CRは、Carriage Returnの略称です。

左端へ移動する・同じ行の先頭へ移動する」という意味です。

実際には、「次の先頭行」に行くことで間違いではないのですが、あくまで操作としては「カーソルを左端の位置に移動する」ということです。

コードで書く場合は「\r」と記述します。

対応OS:Mac OS 9以前(現在ではあまり一般的でない)

改行コードの使い分けが必要な場合

  • CRLF
  • LF
  • CR

この3つの改行コードは、それぞれ対応するOSが違います。

対応OSと改行コードが違うということは、プログラムを読み込めなくなることを意味します。

例えば、Windowsのテキストエディタ(メモ帳などのような自由にテキストを打ち込めるソフトウェア)でコードを書き、それをCygwin(互換性のあるLinux UNIXのような環境を提供してくれるフリーのソフトウェア)などでプログラムの実行をしても、エラーが出ます。

これは、Windowsのテキストエディタのデフォルト(標準設定)がCRLFであるため、LFに対応するCygwinではCRLFをうまく読み取れないのが原因です。

例えば、日本語を話すことのできない人に日本語で話しかけるようなものです。

そのため、Windowsのテキストエディタを保存するときに、改行コードをLFとして保存するとエラーが解決します。

別の例としては、Windowsで作業したテキストエディタをmacユーザーに送って、それを実行してもエラーが起きます(現在は互換性のあるようになっているので、エラーが起きることは少なくなりました)。

ちなみに、テキストエディタの中で有名な「サクラエディタ」は改行コードの表示を出し分けてくれているので、見分けることが簡単です。
CRLF : ↵
CR  : ←
LF  : ↓

例えば、Wordで改行すると、Windowsのソフトウェアなので「↵」が改行する際に現れます。

改行コードによるエラーを防ぐことは可能か?

一番の解決策は、やりとりをする相手、ファイルを開きなおす前と後で、同じソフトウェアで作業をすることが一番でしょう。

違うOSであっても、ソフトウェアが同じであれば改行コードによるエラーは発生しません(可能性が0というわけではありませんが、ほぼ起きないでしょう)。

お互いに、Wordで送る、Google ドキュメントでやりとりする、などのルールを決めておくとよいと思います。

また、CSVなどの場合は、より詳細に決めておくことが一番です(文字コードは何にするか、改行コードはLFなのかCRLFなのか、など)。

改行コードの特徴を押さえておくと、プログラムのエラーが出たときに、改行コードとOSの不一致によるエラーではない、ということがわかるので、エラーの発見の時間を短縮できると思います。

テキストエディタの例

お勧めのテキストエディタの例としては、以下のページの「テキストエディタの例」にあるものです。

【危険】テーマファイル(テンプレートファイル)の編集はローカルファイルで行なう
WordPressのテーマファイルの編集は管理画面で編集するのではなく、オフラインにてテキストエディタで編集して、FTPでアップロードしましょう。管理画面の直接編集でミスしたまま「ファイルを更新」すると、元に戻らない危険を孕んでいます。

その他、Windowsユーザーであれば、サクラエディタがオススメです。

サクラエディタは改行コードが可視化されるため、今使っている改行コードが何か、というのがすぐにわかります。文字コードを含め、コードの変換が簡単にできます。

Macユーザーであれば、標準インストールされている以下のエディタでも十分かと思われます。

  • メモ
  • テキストエディット

メモは非常に人気の高いソフトウェアで、使いやすく、デバイス間でのやりとりもスムーズです。

Macユーザーの場合、注意点として、標準インストールされているエディタでは改行コードの変換ができません。

そのため、OS間で互換性を持たせるためには、Windowsユーザーに送る際にはWindowsユーザー側で変換してもらうか、改行コードの変換が可能なテキストエディタをインストールするして変換する必要があります。

Macで改行コード変換可能なエディターでは、「CotEditor」が有名です。

「CotEditor」について詳しくは、こちらをご覧ください。

CotEditor
Text Editor for macOS

 

まとめ

  • 基本的な改行コードは3つ(CRLF、LF、CR)。
  • それぞれの対応しているOSが違うため、間違えるとエラーが発生する。
  • エラーを防ぐには、相手方がいる場合には、事前に打ち合わせしておくのがよい。
タイトルとURLをコピーしました