事象
Visual StudioでShift-JISとして保存されたC++ソースコードがShift-JISとして開かれず文字化けする。
解決方法(結論)
コントロールパネル→時計と地域→地域→管理→システムロケールの変更 で「日本語(日本)」を選択
背景・経緯
TwinCAT/C++の開発を行うのにVisual Studio 2019を使用していますが、Visual StudioではデフォルトのままC++ファイルを作成し、日本語のコメントなどを含んで保存するとShif-JISとして保存されます。
このShift-JISで保存されたファイルについて、普段開発しているPCでは問題なくShift-JISとして開かれるのですが、Beckhoff製IPCで開くと自動で文字コードを認識してくれず、文字化けしてしまう事象がありました。
ソースファイルを右クリックしてOpen with→C++ Source Code Editor (with encoding)でShift-JISを指定すれば文字化けせずに開けるのですが、毎回この操作でソースファイルを開くことはかなり効率が悪いです。
該当PCはWindowsの初期設定が英語だったため、Windowsの表示言語を日本語にしたり、Visual Studioの表示言語を日本語にしても変わりません。
いっそのことBlueSilverCatさんの記事などを参考にC++のデフォルトエンコーディングをUTF-8にしてしまおうかと思いましたが、設定が面倒で、またPC毎に設定する必要があるのもミスが起きそうで避けたかったです。
色々試行錯誤した結果、上記の解決方法の方法で解決できました。数時間格闘していました。。
システムロケールの設定の存在を初めて知り、Windowsについて少しだけ詳しく慣れた気がします。
というかWindowsは脱コントロールパネルしようとしているはずですが、未だにこの設定などはコントロールパネルからしかできない?
この問題が解決するまではコメントを英語で書いていたりしましたが、GitHubで公開するわけでもないソースは、パッと読んで理解するためにも、コメントを書く時間を節約するためにも(英文を書こうと思うと時間がかかる)、やっぱり日本語でコメントは書きたいです。