Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > раскодировка UTF-16


Автор: Kei 18.1.2010, 19:19
Есть строки

string letter1="0x0411";
string letter2="0x0430";

и т.д.

Как я понял, это запись символов в кодировке UTF-16.

Вопрос в том, как вывести все это на экран консоли человеческим языком?
(Закодированные символы на русском языке)

Автор: Kei 18.1.2010, 20:40
Решил задачу. Все было просто smile

cout << "\u0411" <<endl;
cout << "\u0430" <<endl;

АПД. когда напишешь вручную выведет, а как автоматизировать непонятно.(

Автор: Kei 18.1.2010, 21:14
что-то только не получается вывести имея только цифры...

string letter="0411"
как вывести на экран в виде символа юникодовского %)

letter="\\u"+letter;
printf("%c",letter); 
не работает

Автор: jonie 18.1.2010, 23:28
Цитата

Код


cout << "\u0411" <<endl;

прикольно... учитывая что cout работает с однобайтовыми символами, в отличие, например, от wcout...
Цитата

Код


letter="\\u"+letter;
printf("%c",letter); 

а это вообще вывод char-а, а не строки, тем более std::string-а

Вам что надо-то?

Цитата


string letter1="0x0411";
string letter2="0x0430";

и т.д.

Как я понял, это запись символов в кодировке UTF-16.
вы неправильно поняли. Это просто строки "0x0411" и "0x0430" в кодировке ANSII.

Автор: Alexeis 19.1.2010, 00:01
может sscanf ? извлечь hex в wchar_t а ее вывести как положено.

Автор: Kei 19.1.2010, 10:50
Цитата

Вам что надо-то?


Есть набор этих циферных кодов (хранятся они в строках), нужно вывести их на экран консоли как буквы.

string letter1="0x0411"; (это заглавная Б)
string letter2="0x0430"; (Это а)


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)