gpt4 book ai didi

c++ - UTF8 字符到十六进制值字符串

转载 作者:行者123 更新时间:2023-11-28 05:54:15 24 4
gpt4 key购买 nike

我需要一种方法将字符转换为十六进制值作为字符串。

我尝试了几种方法,但所有方法都忽略了 UTF8 字符。

例如:

取字符:

Ş

如果它的转换正确,它的十六进制值为 0x15E 但这段代码只返回我 0x3F 这只是字符 ?

wchar_t mychar = 'Ş';
cout << hex << setw(2) << setfill('0')
<< static_cast<unsigned int>(mychar);

我找到了一个 javascript 函数,它正是我所需要的,但无法将其转换为 C++ Here

谢谢

最佳答案

问题是您正在将 char 文字分配给 wchar_t mychar。因为 char 只有一个字节长,所以它不能存储字符 Ş。您必须在文字前加上 L 前缀,如下所示:

wchar_t mychar = L'Ş';

一篇关于 Unicode、编码等的非常好的文章是 The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)乔尔·斯波斯基 (Joel Spolsky) 着。

关于c++ - UTF8 字符到十六进制值字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34567059/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com