Neutral Scent

App developments & Gadgets

Visual Studioの規定値でUTF-8にBOMを付けないようにする

VSが規定値でUTF-8のテキストファイルにByte-Order-Mark(BOM)を付けてくるのは有名ですが、それが思わぬ副作用を生むことがあります。

なので、なんでByte-Order関係ないUTF-8にBOM付けるねん、逐一ファイルのエンコーディング設定なんて面倒なんじゃ、と考えるのがお約束。(ただし一律にBOMを外してしまうとそれはそれで問題があるようです)
そこでツールの投入ですよ、と。

Fix File Encoding - Prevent Visual Studio 2012/2010 from adding BOM to UTF-8 files - Sergey Vlasov Studio (Visual Studio add-ins, extensions and tools)
http://www.svprogramming.net/fix-file-encoding/

こちらのツールで任意のファイルに設定が可能になります。

正規表現で指定したパスのBOM設定を除外する設定なので、フルパスを含めて指定フォルダ以下のファイルなどに限定することもできます。

拡張子*.html *.htmのファイルをBOM除外: \.(html|htm)$
m:\tempディレクトリ以下に含まれるファイルをBOM除外: ^m:\\temp
m:\tempディレクトリ以下の*.htmlファイルをBOM除外: ^m:\\temp.+\.html$
すべてのファイルをBOM除外: 設定を空にする

追記(2013/05/30):
冒頭の件に関してはshibayanが詳細をまとめてくれました。基本的にはgit側で解決ということで。
Visual StudioUTF-8 BOM と Git の設定で悩まされた話 - しばやん雑記
http://shiba-yan.hatenablog.jp/entry/20130529/1369816283