EditorConfig
EditorConfig使えばほぼほぼ解決します。VSやVSCode, Riderや秀丸などたいがいのIDEは対応してます
https://learn.microsoft.com/ja-jp/visualstudio/ide/create-portable-custom-editor-options?view=vs-2022
ずいぶん古くなってしまったので前のやつは畳んでおきます
http://bloghandling.blogspot.jp/2016/05/visualstudioutf-8.html?m=1
確認したらずいぶん昔に書いたblogの内容のレイアウトがバラバラになってしまったのでQiitaに上げ直します。
introduction
Visual studio's default encoding is SHIFT-JIS.
But sometimes need UTF-8 encoding.
Then try to use Item Template of Visual Studio.
Thereby UTF-8 Encoding File Create.
(小学生並みの英語だけど伝わんのかな・・・。)
概要
コードを書いていると色々な壁に当たりますが、長年当たり続けてきた壁がエンコードの壁です。
VisualStudioは新規でファイルを作成するとデフォルトでShift-JISでファイルを作成します。
これがたまに問題を引き起こします。
gitにpushする前にフックしてUTF-8にする、VisualStudioの拡張機能で保存するときにUTF-8にする等色々対策がされてきました。
ただまあ、そもそもの話「新しくファイルを作るときにUTF-8(BOM)で作れればいいじゃん」ということで、試したら出来たのでその方法を紹介します。
VisualStudioCommunity2015で試しています。
結論
結論から言うと、VisualStudioの項目テンプレート機能を用いて新規ファイル作成の部分をフックしています。
おそらくVisualStudio2012あたりから同じ機能が使えると思います。
C++の空のソースファイルとヘッダーファイルを作成するzipを用意したので、使いたい方居れば使ってください。
それにより起きたあらゆる事象に責任は負いませんので、よろしくお願いします。
Documents\Visual Studio 2015\Templates\ItemTemplates
上記フォルダの中に入れれば多分インポートされると思います。
・Cppソースファイルの項目テンプレート
https://drive.google.com/open?id=0B6LsSmj8FKubSkd1RzZ3M2lULWM
・ヘッダーファイルの項目テンプレート
https://drive.google.com/open?id=0B6LsSmj8FKubeENIRElRTm9zSWs
やること
とりあえず適当な空のプロジェクトを作成して、空のファイルを作成しましょう。
そのファイルの保存オプションでUTF-8(BOM)を選択して保存します。
改行コードは好きにして下さい。
保存した後、テンプレートのエクスポートを選択して項目テンプレートを出力します。
今作成した空のファイルを選択して下さい。
アイコンを求められますが、適当なものを選びましょう。
VisualStudioで使用しているデフォルトのアイコンはこちらからダウンロード出来ます。
https://www.microsoft.com/en-us/download/details.aspx?id=35825
テンプレートを出力すると、自分のローカルドキュメントのVisualStudioフォルダーの中に作成したテンプレートが保存されます。
VisualStudioを再起動します。
VisualStudio上で新規ファイルを作成してみましょう。
作成した項目テンプレートが選択出来るようになっています。
ファイルを作成したら、詳細オプションを確認して意図したエンコードになっているか確認しましょう。
同じように、ソースファイルも項目テンプレートを作成します。
C++ファイルのiconはデフォルトイメージデータフォルダを展開したフォルダのCPPFileフォルダの中に入っています。