2 に答える
Visual Studio を使用しているため、Windows を使用していると仮定します。Windows コンソールは Unicode をサポートしていません。OEM 文字セットを使用します。CharToOemW/OemToCharW を使用して、2 つの間で変換できます。明らかに、すべての Unicode 文字を表現できるわけではありません。
Windows は、システム API に UTF16 を使用します。ツールチップで Windows API を使用している場合、使用したいのはおそらく wstring です。ただし、代わりに UTF8 を使用し、これを UTF16 に変換してから Windows API を呼び出すことができます。この変換は、MultiByteToWideChar/WideCharToMultiByte を使用して実行できます。
Unicode 文字を扱っているため、プロジェクトのプロパティで[文字セット]を [Unicode 文字セットを使用する] に設定すると適切です。
別の考えられる問題は、ソース ファイルのエンコーディングです。Unicode 文字を扱う際のベスト プラクティスは、ソース ファイルをUTF-8でエンコードすることです。特に、このような文字列リテラルを定義するファイルはそうです。BOM なしの UTF-8は、Visual Studio がファイルの内容を適切に解釈できるようにこのBOMを必要とするため、問題になる可能性があることに注意してください。ファイルを変換し (これにはNotepad++を使用します)、 UTF-8でエンコードされるように変換します。