Re[2]: тысяча третий раз про Юникод
От: pepsicoca  
Дата: 14.10.09 09:51
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Здравствуйте, pepsicoca, Вы писали:


P>>Она НЕ печатает кириллицу.

P>>Есть другая программа, в которой добавлен вызов std::wcout.imbue(std::locale("rus_rus.866"));:

J>В качестве дикого предположения (я под винду не программирую)...

J>Ты ведь, наверное, имеешь в виду, что не печатает в терминале? Так он не юникодный, скорее всего.

Зная, что терминал не юникодный и зная, что нужно выводить кириллицу (это можно узнать из Юникодного кода кирилических символов) почему бы системе самой перед выводом кирилицы не сделать imbue той локали, которая нужна?

J>Попробуй распечатать в файл, а не на экран консоли, а потом открыть его Блокнотом — в файле будет юникодная русская строка или нет?

J>Если мое предположение верно, то это беда виндовой консоли.

Вот пример с файлом:

#include "stdafx.h"
#include <fstream>

int _tmain(int argc, _TCHAR* argv[])
{

std::wofstream o1("example.txt");

o1<<L"hello"<<std::endl;
o1<<L"привет"<<std::endl;

return 0;
}


Этот пример печатает в файл только латинское hello. Причем не в Юникоде, а в ASCII.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.