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

如何将包含UTF-8十六进制值的字符串转换为C中的wchar?,c,string,unicode,hex,wchar,C,String,Unicode,Hex,Wchar,我正在使用GCC。我有一个字符串,包含UTF-8字符的十六进制值,如下所示: char[] str = "4e86" 此类字符串是从xml文件中读取的。 我希望将其转换为包含字符\u4e86的wchar 我知道我可以直接定义 wchar_t wc = L'\u4e86'; 但是我想要一个这样的函数 wchar_t wc = convert(str) 怎么做?试试这个: char[] str = "4e86"; wchar_t wc = strtol(str, NULL, 16); 参考:

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

char[] str = "4e86"
此类字符串是从xml文件中读取的。 我希望将其转换为包含字符\u4e86的wchar

我知道我可以直接定义

wchar_t wc = L'\u4e86';
但是我想要一个这样的函数

wchar_t wc = convert(str)
怎么做?

试试这个:

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

试试这个:

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