我想将char*
字符串转换为C中的wchar*
字符串。
我找到了很多答案,但大多数答案都是针对C ++的。你能帮帮我吗?
感谢。
答案 0 :(得分:18)
使用swprintf
标记尝试%hs
。
示例:
wchar_t ws[100];
swprintf(ws, 100, L"%hs", "ansi string");
答案 1 :(得分:4)
setlocale()
后跟mbstowcs()
。
答案 2 :(得分:2)
你正在寻找的是
mbstowcs
就像从char *到char *
的复制函数一样但在这种情况下,您将保存到wchar_t *
答案 3 :(得分:0)
如果您碰巧使用了Windows API,转换函数MultiByteToWideChar提供了一些可配置的字符串转换,从不同的编码转换为UTF-16。如果您不太关心可移植性并且不想确切知道不同语言环境设置对字符串转换的影响,那可能更合适。
答案 4 :(得分:-3)
如果您目前有ANSI字符。只需在每个char之前插入一个0('\ 0')并将它们转换为wchar_t *。