C++ で新しいコマンド ライン アプリケーションを作成しています。私たちがサポートするプラットフォームの 1 つは、もちろん Windows です。
デフォルトでは、Windows コンソールはロケールに応じて OEM コード ページを使用します (たとえば、私のマシンでは CP437 / DOS.Western です)。Windowsのキリル文字版だったらCP866とかだったと思います。これらの OEM コード ページには 256 文字しか含まれていません)
これは、Windows コンソールが入力キー ストロークをデフォルト コード ページに基づいて文字に変換することを意味すると思います。(また、現在選択されているフォントによっては、対応するグリフがあれば表示されます)。
- このような場合、アプリケーションで wmain/wchar_t および wide char 型を使用することは理にかなっていますか?
- ワイドタイプを使用する利点はありますか? または、char * だけを使用すると重大な問題がありますか?
- ワイド char 型が使用されている場合、コマンド ライン引数と環境文字列のエンコーディングは何ですか - (wchar_t * argv[] および wchar_t * envp[])、つまり。それらは Windows CRT によって UTF-16 に変換されますか、それともそのままですか?
貢献していただきありがとうございます。