在C中将char *转换为wchar *

时间:2011-01-28 08:19:36

标签: c unicode char wchar

我想将char*字符串转换为C中的wchar*字符串。

我找到了很多答案,但大多数答案都是针对C ++的。你能帮帮我吗?

感谢。

5 个答案:

答案 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 *。