序文
VS のエンコーディングの問題は常に頭痛の種であり、GBK エンコーディング方式はより使いやすいものですが、実際にはクロスプラットフォームおよびクロス開発ツールには適していません。
VS2019 + Qt5.14 環境で問題が発生しました。Qt はデフォルトで UTF-8 を使用するため、コンソールまたは Qt インターフェイスで文字化けが発生しやすくなります。
インターネット上の型にはまった手法の一部は、
#ifdef WIN32
#pragma execution_character_set("utf-8")
#endif
解決することはできますが、あまり良い解決策ではなく、美しくも完璧でもないので、あまり好きではありません。
それで、しばらく研究した後、より良い方法を見つけました
総合的に考えると、VS2019 では BOM エンコード付きの UTF-8 を使用する方が良いでしょう。次の解決策も BOM 付きの UTF-8 に変更します。もちろん、BOM なしの UTF-8 のみが必要な場合にも適しています。
他のテキストソフトを使用してエンコードを表示する代わりに、エンコードを簡単に観察するために、FileEncoding
現在のファイルのエンコードを右下隅に表示するプラグインを事前にダウンロードしました。
オプション 1
プラグインをダウンロードしてエンコードの問題を解決する
Linux では with BOM が認識されないと言われており、当初は UTF-8 を試してみたかったのですが、force utf-8 プラグインを使用しても動作しなかったため、with BOM ソリューションを使用する必要がありました。
Format on Save
その後、プラグインを使用することで問題は解決しましたが工具-选项
、プラグインを見つけてダウンロードした後、設定する必要があるのは 2 項目だけでしたが、最初の項目は Windows のため変更されました。
新しいファイルを作成すると、右下隅に GBK でエンコードされていることがわかりますが、保存すると BOM 付きの UTF-8 になります。
オプション II
editorconfig ファイルを使用して、コード仕様を統一し、コーディングの問題を統一します。VS で直接生成できます。Visual Studio 2019 以降では、[ツール] > [オプション] > [テキスト エディター] でコード スタイル設定に基づいて EditorConfig ファイルを生成できます。
ここでの開発は C++ であり、コード スタイルの中に、コード スタイルの設定に基づいて生成された EditorConfig ファイルがあります。
生成後、ファイルに追加
#编码方式,有以下几种类型:latin1, utf-8, utf-8-bom, utf-16be, utf-16le
charset = utf-8-bom
保存してください。ちなみに、このファイルはプロジェクト パスに配置する必要があることを忘れないでください。
また、Qtインターフェースの文字化けに関しては、ファイルのエンコード規格を統一するだけで、上記だけでは不十分かもしれません。/utf-8
Qt UTF-8 エンコード規格を統一し、Qt ターミナルと Ui インターフェイスが文字化けしないように、プロジェクト プロパティ - C/C+±コマンド ライン - その他のオプション に追加する必要があります。
2022-09-04 更新:
BOM 解決策なしで UTF-8 を使用する場合は、文字化けの原因と解決策について詳しく説明したこの記事を参照してください。
上記は私がこれまでに見つけた最良の解決策です。追加歓迎です!