私のプログラムでは、wstring
必要なテキストを印刷していましたが、ランダムな暗号化が行われました(エンコード方式が異なるため)。たとえば、このコードブロックがあります。
wstring text;
text.append(L"Some text");
次に、directXを使用して画面にレンダリングします。以前使っていたのwchar_t
ですが、携帯性に問題があると聞いたので、に切り替えましたswtring
。wchar_t
うまくいきましたが、私が言うことができることから英語の文字しか取れなかったようです(印刷されたものは入力された英語以外の文字を完全に無視します)、それは私が切り替えるまでは問題ありませんでしたwstring
:中国語と韓国語が混ざったように見えるランダムな暗号しか入手できませんでした。そして興味深いことに、非Unicodeテキストの私のコンピューターロケールは中国語です。私が見たものに基づいて、漢字が正しくレンダリングされるのではないかと思ったので、試してみましたが、文字は正しく表示されますが、前面に正方形が表示されます(これはまだ一種の誤った表示です)。次に、エンコーディングが言語ロケールに依存する可能性があると推測したため、ロケールを英語(US)に切り替え(win8を使用)、再起動すると、ソースファイルの中国語のテスト文字がランダムなものになりました(ファイルは保存されません)すべてのテキストが英語であるため、Unicode形式で)英語の文字で試しましたが、運が悪かったため、表示はまったく同じように見え、ロケールとは関係ありません。しかし、なぜそれができないのか分かりません」
変換を行う必要がありますか、それともファイルを別のエンコード形式で保存する必要がありますか?問題は、デフォルトである英語の文字を正しく表示したかったことです。