1

このコードを使用して Unicode の「س」の整数値を取得すると、1587 (16 進数では 633) になります。これは、Unicode 規格の 'س' の正しい値です。

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

ここで、この文字を UTF-8 文字エンコーディングの txt ファイルに入れ、その値を 16 進モードでチェックします。これd8 b3は、10 進数で 55475 を意味します。

これらの値が一致しないのはなぜですか?

追加:これが私のコードです:

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

2 に答える 2