モーグルとカバとパウダーの日記

モーグルやカバ(EXカービング)山スキー(BC)などがメインの日記でした。今は仕事のコンピュータ系のネタが主になっています。以前はスパム対策関連が多かったのですが最近はディープラーニング関連が多めです。

UTF-8のファイルを勝手にBOM付きにしてしまう犯人

以前こんなエントリーを書いたことがあります。

DebugKitの表示が崩れた理由とUTF-8のBOM
http://d.hatena.ne.jp/stealthinu/20130719/p1


UTF-8文字コードのファイルは、ファイルの先頭にビッグエンディアンかリトルエンディアンかを示す「BOM」というコードを「入れることが出来る」のですが、普段は入れません。
というか、上記エントリーのように色々と副作用が出たりするので、入れないほうが良いのです。


ですが、ふとなにかのタイミングでUTF-8のファイルにBOMが入れられてコミットされる場合があり、誰がやってんのっ!やめてよ… と思っていました。


が、やっと犯人がわかりました。

Win7とか最近のWindowsについてくる「メモ帳」はUTF-8に対応しているのですが、「メモ帳」でUTF-8のファイルを保存すると必ずBOM付きにされてしまうのです。


このことがわかってから「メモ帳 UTF-8」で検索すると、結構これについて注意を書いているエントリーが出てくることわかったのですが、知らないと盲点ですよね。

メモ帳なんかでファイル編集しないよ、とかいう人でも、例えば余計なアプリをなるべく入れないようにしてる本番用Windowsサーバ機で、ちょこっと設定ファイルを編集したり緊急時の対応するのに「メモ帳」使ったりすることありませんか?
で、その修正した内容を開発機に戻すためにファイルをコピーして持って帰り、リポジトリに突っ込んだりしませんか?


というわけで、「メモ帳」でUTF-8入ったソース触るのは想定外のトラブル起こす場合があるので、基本的に「メモ帳」では触らない、もし触ったら消毒(BOM取り)する、とチーム内で意識を統一しておく必要があると思います。