C ++: вывод широких символов неправильно?
Мой код в основном это:
wstring japan = L"日本";
wstring message = L"Welcome! Japan is ";
message += japan;
wprintf(message.c_str());
Я хочу использовать широкие строки, но я не знаю, как они выводятся, поэтому я использовал wprintf. Когда я запускаю что-то вроде:
./widestr | hexdump
Шестнадцатеричные кодовые точки создают это:
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: я пытался использовать wcout, но он выводит точно такие же шестнадцатеричные кодовые точки. Weird!