2

UTF-16 文字列を utf-8 に変換しようとしていて、少し壁にぶつかっています。出力文字列には文字が含まれていますが、空白が含まれています!? 入力はhi\0であり、出力を見ると、h\0i\0代わりにと表示されhi\0ます。

ここに問題がありますか?どうもありがとう!

size_t len16 = 3 * sizeof(wchar_t);
size_t len8 = 7;
wchar_t utf16[3] = { 0x0068, 0x0069, 0x0000 }, *_utf16 = utf16;
char utf8[7], *_utf8 = utf8;

iconv_t utf16_to_utf8 = iconv_open("UTF-8", "UTF-16LE");
size_t result = iconv(utf16_to_utf8, (char **)&_utf16, &len16, &_utf8, &len8);

printf("%d - %s\n", (int)result, utf8);

iconv_close(utf16_to_utf8);
4

1 に答える 1