Cでchar*
文字列をwchar*
文字列に変換したいのですが。
私は多くの答えを見つけましたが、それらのほとんどはC++用です。私たちを手伝ってくれますか?
ありがとう。
%hs
フラグを付けてswprintf
を試してください。
例:
wchar_t ws[100];
swprintf(ws, 100, L"%hs", "ansi string");
setlocale()
の後に mbstowcs()
が続きます。
あなたが探しているのは
mbstowcs
char *からchar *へのコピー機能と同じように機能します
しかし、この場合はwchar_t *に保存しています。
Windows APIを利用できる場合、変換関数 MultiByteToWideChar は、さまざまなエンコーディングからUTF-16への構成可能な文字列変換を提供します。移植性についてあまり気にせず、さまざまなロケール設定が文字列変換にどのような影響を与えるのかを正確に把握したくない場合は、これがより適切な場合があります。