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

标签 c string unicode hex wchar

我正在使用海湾合作委员会。我有一个包含 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);

(引用:https://stackoverflow.com/a/10156436/999400)

关于c - 如何在 C 中将包含 UTF-8 十六进制值的字符串转换为 wchar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18262279/

相关文章:

c - 如何在 Linux 上为 GTK+ 设置 C 开发环境?

c - 使用 64 位(long long)时,为什么使用 %lld 的 printf 返回的数字与使用 %16x 的 printf 返回的数字不同?

javascript - 运行字符串 Javascript 中的代码

xml - XSLT:使用 xsl:value-of - 我返回的是字符串还是单个字符串的节点集?

c# - 如何判断 "Lowest"编码可能?

c++ - 如何防止 cvLoad 失败?

java - 如何将 Java 程序的入口点更改为 C 签名?

javascript - 在字符串变量中的字符之前插入几个字符(javascript)

php - 在 PHP 中剪切 UTF8 文本

objective-c - 如何解决 NSTask 调用 -[NSString fileSystemRepresentation] 作为参数