「改行コード」とはいったい何か。そんなこと知らずとも、十分にパソコンを使いこなすことができます。しかし、システムやサーバーを設計・運用している人や、サイトを運営している人であれば「改行コード」を知らなければいけない場面がくるかもしれません。
この記事では、
・改行コードとはいったい何なのか。
・改行コードはOSによってどう変わるのか。
この2点を説明していきます。
改行コードとは何か?
改行コードとは、「改行してほしい」という命令を与えるコードです。
普段、Wordなどのアプリケーション(システム)で文章を記入するときには、Enterキーを入力するだけで勝手に改行がされてくれるようにシステムが組まれています。
そのアプリケーション(システム)を設計しているJavaやC言語などのプログラミング言語では「\n」、HTMLでは<br>や<p>などで改行をするのが一般的だと思います。
アプリケーションやブラウザでは、そのコードを読み取って改行を行ってくれます。
しかし、「改行コード」とは、それらを指す言葉ではありません。
改行コードとは、改行をどう表すかを決めた制御文字です。
そして実は、文字コードによっては「\n」ではなく「\r\n」と入力しないとバグになってしまうこともあるのです。
改行コードは大きく分けて2種類あります。
・キャリッジリターン(CL)……左端に先頭を合わせる方式 ⇒\r
・ラインフィード(LF)……そのまま下に先頭を合わせる方式 ⇒\n
大別するとこの2つですが、OSによって、3つの改行コードが採用されています。OSと文字コードの関連について、次の項で述べていきます。
OSと文字コードの関係
一般的に、パソコンやスマートフォンなどのデバイスにはOSが入っています。OSはデバイスの制御を行っており、OSが提供している機能を利用することで、パソコン上のシステム・ソフトウェア(アプリケーション)は動作しています。
一般に流通しているOSは、
・Microsoft Windows
・Mac OS
・Linux
などがあります。
そしてOSによって、採用している文字コードが異なっていることがあるのです。
みんな大好き「さくらエディタ」では以下のように3つの改行コードを選択できるのですが、この3つの改行コードが主流です。
LF、CRは前項で述べたとおりです。
CRLFとは、CRとLFを合わせたものです。CR+LFと書くこともあります。
3つのOSがどの文字コードを採用しているかというと、
・Microsoft Windows ⇒ CRLF
・Mac OS ⇒ バージョン9まではCRで、それ以降はCR
・Linux ⇒ LF
というようになります。
(CR:0x0D、LF:0x0A)
HTTPなどのプロトコルがCR+LFを要求しているということもあり、CR+LFが一番多く使われています。
実は、文字コードによっては「\n」ではなく「\r\n」と入力しないとバグになってしまうこともあるのです。
と先ほど述べましたが、CRLFの環境では「\r\n」と書くのが一般的な改行を現します。しかし、「\n」と書いても問題なく動きますよね?それは、「\n」を「\r\n」に勝手に読み替えてくれているからなのです。
Windowsで改行をすると、勝手にCRLFが設定されるのです。便利ですね。
おわりに
改行コードは普段意識しないので、いざというときに咄嗟に対応ができないことがあります。文字コードは割と意識するんですがね……。
とりあえず、OSごとの改行コードさえ覚えていれば不具合を見つけることができるかもしれないので、そこだけでも覚えておきたいところです。
この記事がお役に立てれば幸いです。
記述、解釈が間違っているところがあればご指摘ください。