VisualStudioのデフォルトエンコードをUTF-8にする方法

# EditorConfig

EditorConfig使えばほぼほぼ解決します。VSやVSCode, Riderや秀丸などたいがいのIDEは対応してます
https://learn.microsoft.com/ja-jp/visualstudio/ide/create-portable-custom-editor-options?view=vs-2022


<details>
<summary>ずいぶん古くなってしまったので前のやつは畳んでおきます</summary>


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を用意したので、使いたい方居れば使ってください。

それにより起きたあらゆる事象に責任は負いませんので、よろしくお願いします。



<UserName>Documents\Visual Studio 2015\Templates\ItemTemplates

上記フォルダの中に入れれば多分インポートされると思います。



・Cppソースファイルの項目テンプレート

https://drive.google.com/open?id=0B6LsSmj8FKubSkd1RzZ3M2lULWM



・ヘッダーファイルの項目テンプレート

https://drive.google.com/open?id=0B6LsSmj8FKubeENIRElRTm9zSWs



# やること

とりあえず適当な空のプロジェクトを作成して、空のファイルを作成しましょう。

そのファイルの保存オプションでUTF-8(BOM)を選択して保存します。

改行コードは好きにして下さい。

![menu_extraoption.png (352×293)](https://3.bp.blogspot.com/-IgENJpNyI6k/Vyr3jXlT8uI/AAAAAAAAAr0/irqTJuI2HaANCs_LSglu5i5fjMOgph4xwCKgB/s1600/menu_extraoption.png)

![menu_encodeoption.png (459×235)](https://1.bp.blogspot.com/-3_dp02k1CCg/Vyr3jYRJMQI/AAAAAAAAArs/yusEUQLRAWoeYM5gRH3BEHrvOSOu9JZcACKgB/s1600/menu_encodeoption.png)

保存した後、テンプレートのエクスポートを選択して項目テンプレートを出力します。

今作成した空のファイルを選択して下さい。

アイコンを求められますが、適当なものを選びましょう。



VisualStudioで使用しているデフォルトのアイコンはこちらからダウンロード出来ます。

https://www.microsoft.com/en-us/download/details.aspx?id=35825

![template_export.png (350×332)](https://3.bp.blogspot.com/-ybJEuc5Ki_E/Vyr3jpq96eI/AAAAAAAAArw/uU75GpFKxjQibCER7Q4pOXWFCJUFHneQQCKgB/s1600/template_export.png)

![template_export_wizard.png (717×546)](https://1.bp.blogspot.com/-rFBgbDAun1A/Vyr3j2cWC-I/AAAAAAAAAr4/3E7XCEcCPqMGj0m3bDcJRm3XmCRZ97oRgCKgB/s1600/template_export_wizard.png)

![template_export_wizard_option.png (717×546)](https://2.bp.blogspot.com/-93YMe-wnTZ4/Vyr3kOwcy3I/AAAAAAAAAr8/TKy_9nUH9ocNxamIct6G7JhZoXQF_4y3gCKgB/s1600/template_export_wizard_option.png)

テンプレートを出力すると、自分のローカルドキュメントのVisualStudioフォルダーの中に作成したテンプレートが保存されます。

VisualStudioを再起動します。

VisualStudio上で新規ファイルを作成してみましょう。

作成した項目テンプレートが選択出来るようになっています。

![document_export_explorer.png (1212×634)](https://4.bp.blogspot.com/-czRMY5UP93E/Vyr3iytcf8I/AAAAAAAAArk/b21Q9D9_xScFiu0_SR9wakRBgj2v0hlegCKgB/s1600/document_export_explorer.png)

![headerfile_new.png (714×209)](https://1.bp.blogspot.com/-gJYQpuyc0Ho/Vyr3iyZedqI/AAAAAAAAArc/ZCtCfHPmWkA5-l2QutZs1S_JGxo3GviigCKgB/s1600/headerfile_new.png)

![headerfile_new_template.png (941×653)](https://4.bp.blogspot.com/-CTvWncExZwg/Vyr3jbKez-I/AAAAAAAAAro/e611X8X-MasY2u3Np9FNXUMECDsfr1iJwCKgB/s1600/headerfile_new_template.png)

ファイルを作成したら、詳細オプションを確認して意図したエンコードになっているか確認しましょう。

同じように、ソースファイルも項目テンプレートを作成します。

C++ファイルのiconはデフォルトイメージデータフォルダを展開したフォルダのCPPFileフォルダの中に入っています。

![check_template_encode_option.png (459×235)](https://1.bp.blogspot.com/-rH2a3PdRU4g/Vyr3i4bdIlI/AAAAAAAAArg/_AEt5LspWWwJlRHpe-mtJ6tTiKzRHZ-ogCKgB/s1600/check_template_encode_option.png)


</details>