在C中将char *转换为wchar *

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

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

谢谢。

尝试使用%hs标志的swprintf

例:

 wchar_t ws[100]; swprintf(ws, 100, L"%hs", "ansi string"); 

setlocale()后跟mbstowcs()

你要找的是

 mbstowcs 

就像从char *到char *的复制function一样

但是在这种情况下你要保存到wchar_t *

如果您碰巧使用了Windows API,则转换函数MultiByteToWideChar提供了一些可配置的字符串转换,从不同的编码转换为UTF-16。 如果您不太关心可移植性并且不想确切知道不同语言环境设置对字符串转换的影响,那么这可能更合适。

如果你目前有ANSI字符。 只需在每个char之前插入一个0(’\ 0’)并将它们转换为wchar_t *。