このコードを使用して 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);