utf-8のBOMありとなしについてと改行コード

utf-8には2種類あって

utf-8

utf-8N

というのがある。
utf-8はBOMありでutf-8NはBOMなし。
BOMというのは”Byte Order Mark”の略で、この文章はUnicodeで記述されているということをあらわしている。
BOMありの場合、インタプリンタがBOMを余計なデータとみなすため、プログラムを正確に実行できなくなる。
なのでファイルを保存するときはBOMなしのutf-8Nで保存する。
今のところこのことで不具合が起きたことはなかったけど今後は意識するようにしなきゃ。windowsのメモ帳はデフォルトでBOMありで保存するらしい。

次に改行コードの話し。

改行コードには

LF: UNIX系のシステム。LinuxAIXXenixMac OS XBeOSAmigaRISC OSなど。
CR+LF: CP/M、MP/M、MS-DOSOS/2Microsoft Windows
CR:コモドールによるシステム、Apple IIファミリ、Mac OS(バージョン9まで)、OS-9

以上のものがある。
先ほどのUnicodeの話しと同様にこちらも正しく指定しないとプログラムが実行できなくなる。

具体的にはwindowsで書いたプログラムをレンタルサーバー(主にUnix)上で実行するときにはそのOSにあった改行コードにしないとちゃんと読み取ってくれない。

この場合windowsからUnixなので

CR+LF → LF

のように保存するときに改行コードを変えてあげなきゃいけない。
FTPソフトでアップロードする場合は自動で転送先のOSに合わせた改行コードに変換してくれるみたい。
でも念のために転送前に確認することが大事。

参考: