20

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

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

谢谢。

4

5 回答 5

27

swprintf%hs国旗试试。

例子:

wchar_t  ws[100];
swprintf(ws, 100, L"%hs", "ansi string");
于 2011-01-28T08:36:58.087 回答
4

setlocale()其次是mbstowcs()

于 2011-01-28T08:23:47.530 回答
3

你要找的是

mbstowcs

就像从 char* 到 char* 的复制功能一样

但在这种情况下,您将保存到 wchar_t*

于 2012-11-18T09:35:00.210 回答
0

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

于 2011-01-28T08:49:50.457 回答
-3

如果您当前有 ANSI 字符。只需在每个字符前插入一个 0 ('\0') 并将它们转换为 wchar_t*。

于 2016-04-08T06:39:40.073 回答