如何将包含UTF-8的十六进制值的字符串转换为C中的wchar?

时间:2013-08-15 21:35:31

标签: c string unicode hex wchar

我正在使用GCC。我有一个包含UTF-8字符的十六进制值的字符串,如下所示:

char[] str = "4e86"

(从xml文件中读出这种字符串)。 我希望将其转换为包含字符\ u4e86的wchar。

我知道我可以直接定义

wchar_t wc = L'\u4e86';

但我想要一个像这样的功能

wchar_t wc = convert(str)

如何?

1 个答案:

答案 0 :(得分:4)

试试这个:

char[] str = "4e86";
wchar_t wc = strtol(str, NULL, 16);

(参考:https://stackoverflow.com/a/10156436/999400