当我使用此代码在 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);