gpt4 book ai didi

c++ - 两种情况下wchar_t字符整数值的区别

转载 作者:行者123 更新时间:2023-11-30 04:16:47 24 4
gpt4 key购买 nike

当我使用此代码获取 unicode 中 'س' 的整数值时,我得到 1587(即十六进制的 633)。这是 Unicode 标准中 'س' 的正确值。

wchar_t wc = L'س';
cout<<wc; // or wcout<<int(wc);

现在,我将这个字符放入一个 UTF-8 字符编码的 txt 文件中,然后我以十六进制模式检查它的值。我得到 d8 b3,表示十进制为 55475。

为什么这些值不匹配?

已添加:这是我的代码:

wchar_t wc = L'س';
FILE *f;
f = fopen("input1.txt", "w");
_setmode(_fileno(f), _O_U8TEXT);
fwprintf(f, L"%c", wc);
fclose(f);

最佳答案

d8 b3 that means 55475 in decimal.

这是 UTF-8 中 Unicode 字符 'ARABIC LETTER SEEN' 的正确编码。参见 here for a reference . 0xD8 0xB3 (d8b3)。当我使用您的代码并使用理解 UTF-8(无 BOM)的文本编辑器打开它时,我可以看到字符。 1587十进制,是字符以UTF-16或UTF-32编码时的值。

关于c++ - 两种情况下wchar_t字符整数值的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17526923/

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