私のコードは基本的にこれです:
wstring japan = L"日本";
wstring message = L"Welcome! Japan is ";
message += japan;
wprintf(message.c_str());
ワイド文字列を使いたいのですが、出力方法がわからないのでwprintfを使いました。次のようなものを実行すると:
./widestr | hexdump
16 進数のコードポイントはこれを作成します。
65 57 63 6c 6d 6f 21 65 4a 20 70 61 6e 61 69 20 20 73 3f 3f
e W c l m o ! e J p a n a i s ? ?
なぜそれらはすべて順番にジャンプするのですか?つまり、wprintf が間違っている場合、なぜこのような特定のごちゃまぜな順序で出力されるのか、まだわかりません!
編集:エンディアンか何か?2文字ごとに回転しているようです。は。
編集 2: wcout を使用してみましたが、まったく同じ 16 進数のコードポイントが出力されます。変!