我想在C语言中将char*
字符串转换为wchar*
字符串。
我找到了很多答案,但大部分都是针对C++的。你能帮帮我吗?
谢谢。
尝试使用 %hs
标志和 swprintf
函数。
示例:
wchar_t ws[100];
swprintf(ws, 100, L"%hs", "ansi string");
setlocale()
跟随 mbstowcs()
。
mbstowcs
这个函数的工作方式类似于从char*到char*的复制功能
但是在这种情况下,您要保存到一个wchar_t*中
如果您目前有 ANSI 字符,请在每个字符之前插入一个 0 ('\0') 并将它们转换为 wchar_t*。
char*
使用的是什么原始编码?UTF8?ANSI?你的系统中wchar
的sizeof
是多少,它所依赖的编码是什么?UCS-2(16位)?UCS-4(32位)? - Benoitsizeof(wchar)
始终为2,不是吗? - user541686