c ++, как напечатать символ utf8, используя шестнадцатеричный код utf8? - PullRequest
0 голосов
/ 21 октября 2018

Например, у меня есть utf8 шестнадцатеричный код символа:

e0a4a0

как я могу использовать этот шестнадцатеричный код для печати этого символа в файл на c ++?

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Вам необходимо вывести каждый байт отдельно.

Например, если у вас есть:

c386

Вам необходимо преобразовать первый байт (первые два символа "c3") в int, преобразоватьна символ и вывод, затем второй байт ("86"), а также преобразование и вывод.

Преобразование для этого конкретного случая ("c386"):

string a="c386";
char b = (a[0] - 'A' + 10) * 16 + a[1] - '0';
char c = (a[2] - '0') * 16 + a[3] - '0';
cout << b << c << endl;

"c3" = 44* 16 + 3 = 707, "86" = 8 * 16 + 6 = 134. Преобразуйте эти значения int в char и выведите их обоих, и у вас будет свой персонаж.

0 голосов
/ 21 октября 2018

Я вижу два подхода, которые вы можете использовать: первый - использовать буквально как "ठ" второй - кодировать его в escape-последовательности \u или \x (оба не работают, поэтому у меня нетпример)

std::cout<<"ठ\xe0\xa4\xa0"<<std::endl;

Но я думаю, что лучшим вариантом для вас будет открыть файл в двоичном режиме и просто поместить туда эти байты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...