altebute.hatenablog.com

犬も歩けば規格にあたる

Visual StudioでデフォルトでUTF-8を使用する方法

最近ソースコードの管理にSourceTree+Git環境を導入したのだが、SourceTreeが文字コードを誤認して文字化けが起きたりするので、色々調べた次第。

上記の理由から、ソースコード文字コードUTF-8にしようと思ったのだが、この方法が中々分からず苦労した。

任意のファイルの文字コード及び改行コードを変更する

デフォルトの文字コードを指定するための前準備として、とりあえず任意のソースコード文字コードを、デフォルトの文字コード及び改行コードとして使用したい設定にする必要がある。

  1. 任意のファイルを作成し、開く。
  2. ファイル(F)->保存オプションの詳細設定(V)...から、任意の文字コード及び改行コードを指定する。*2
  3. 保存する。

新規ファイル作成時に任意の文字コード及び改行コードを使用する

実は、Visual Studioそのものの設定には、文字コード及び改行コードを指定する設定は無い。これらの設定は、「項目テンプレート」と呼ばれる設定ファイルに含まれている。

項目テンプレートとは、新しい項目の追加から新規ファイルを作成・追加する時に表示される、C++ ファイル (.cpp)とか、ヘッダー ファイル (.h)とか書いてあるあれである。これらの設定ファイルには、拡張子やデフォルトのファイル名、文字コード、改行コード等の設定が含まれており、新規ファイル作成時はこれらの設定に基いたファイルが生成される。

  1. 前項で作成したファイルを選択する。
  2. ファイル(F)->テンプレートのエクスポート(E)...からテンプレートのエクスポート ウィザードを起動
  3. 項目テンプレートを選択し、次へ。
  4. 前項で作成したファイルのチェックボックスを有効し次へ。
  5. 次へ。
  6. 適当に書く項目を入力し、完了。

尚、Visual Studioで使えそうなアイコンが以下からダウンロード出来るっぽい。*3

2013.08.31 何故か.cpp.hで使えそうなアイコンは含まれていない臭い。

2014.09.01 .cppファイル及び.hファイルのアイコンはC:\Program Files\Microsoft Visual Studio 12.0\VC\vcpackages\VCProject.dllに含まれている。*4

Download Visual Studio Image Library from Official Microsoft Download Center

たぶん、2013だけでなく、他のバージョンでも概ね同じ方法が使えると思う。

基本的にUTF-8 BOM付きを使えばいいかな、と思っている。普通のバージョン管理システムはBOMのせいで動作がおかしくなる事は無いだろうし、BOMがあれば、文字コードの自動認識が誤作動を起こすのを防げる。BOMや改行コードによる意図しないファイル変更の検知等の問題はバージョン管理システム側が処理すべき問題と考える。

*1:たまに起きる。SourceTreeが気を利かせて文字コードを自分で判定しようとしてコケてる臭い。

*2:出ない場合はファイルが開けていないか、開いたファイルがアクティブになっていない。ダブルクリックなり何なりで開き直すべし

*3:未検証

*4:何故か2個ずつ