1
4

2 に答える 2

4

Visual Studio を使用しているため、Windows を使用していると仮定します。Windows コンソールは Unicode をサポートしていません。OEM 文字セットを使用します。CharToOemW/OemToCharW を使用して、2 つの間で変換できます。明らかに、すべての Unicode 文字を表現できるわけではありません。

Windows は、システム API に UTF16 を使用します。ツールチップで Windows API を使用している場合、使用したいのはおそらく wstring です。ただし、代わりに UTF8 を使用し、これを UTF16 に変換してから Windows API を呼び出すことができます。この変換は、MultiByteToWideChar/WideCharToMultiByte を使用して実行できます。

于 2012-02-10T16:22:05.670 に答える
1

Unicode 文字を扱っているため、プロジェクトのプロパティで[文字セット]を [Unicode 文字セットを使用する] に設定すると適切です。

別の考えられる問題は、ソース ファイルのエンコーディングです。Unicode 文字を扱う際のベスト プラクティスは、ソース ファイルをUTF-8でエンコードすることです。特に、このような文字列リテラルを定義するファイルはそうです。BOM なしの UTF-8は、Visual Studio がファイルの内容を適切に解釈できるようにこのBOMを必要とするため、問題になる可能性があることに注意してください。ファイルを変換し (これにはNotepad++を使用します)、 UTF-8でエンコードされるように変換します。

于 2012-02-10T16:22:56.927 に答える