WindowsのNotepadはUTF-8形式でテキスト保存する場合BOMを保存するが、それが原因で*nix側でシェルスクリプトが動かなかったりする場合があるという話。Apatchの設定ファイルもBOMをつけてしまうとApatchが起動できなくなる。
Sorting it all Out : Why are UTF-8 encoded Unix shell scripts *ever* written or edited in Notepad?
UNICODEの仕様上はUTF-8テキストに対してBOMをつけるかつけないかは、テキストを作る側が任意に決めてよい。
Notepadが有無を言わさずBOMをつけるのもうざったいが、*nix側の各ソフトウェアがBOMを読み飛ばすことさえしないのも本当は問題だ。結局*nix側がUTF-8対応とは言っても根本的には従来通りASCIIとして文字列を扱っているに過ぎない。理由をつけてマイクロソフトをヘイトするのはかってなんだけど、そのときには自分たちもやるべきことはやっておくべきだろう。まぁ。それでもNotepadのBOM添付は任意にした方が良い。
ちなみにVisual StudioはUTF-8でBOM有る無し両方の形式でテキストを保存できる。
コメント