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

Posted

技术标签:

【中文标题】如何将包含 UTF-8 十六进制值的字符串转换为 C 中的 wchar?【英文标题】:How to convert a string containting the hex value of a UTF-8 to a wchar in C? 【发布时间】:2013-08-18 05:00:31 【问题描述】:

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

char[] str = "4e86"

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

我知道我可以直接定义

wchar_t wc = L'\u4e86';

但我想要这样的功能

wchar_t wc = convert(str)

怎么做?

【问题讨论】:

【参考方案1】:

试试这个:

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

(参考:https://***.com/a/10156436/999400)

【讨论】:

以上是关于如何将包含 UTF-8 十六进制值的字符串转换为 C 中的 wchar?的主要内容,如果未能解决你的问题,请参考以下文章

如何将具有十进制值的数字转换为PL / SQL中的浮点数?

将十六进制字符串(char [])转换为int?

Python如何将浮点数作为十六进制转换为十进制

将 UTF-8 编码的 NSData 转换为 NSString

Delphi 如何将十六进制的UTF-8编码转换为汉字

将UTF-8编码的NSData转换为NSString