Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > Проблемы с кодировкой.


Автор: setjmp 11.8.2010, 16:18
Программа берет исходный текст html страницы с сайта и записывает в char x[]. Когда вывожу x через std::cout, то английские буквы(html-теги и такое) выводится нормально, а русский текст кракозябрами. Вот пример:
Код

<title>������� ����� (fokin22) �� ��� ���@Mail.Ru</title>
<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
<meta name="yandex-verification" content="768c4ab061d4f522" />
<meta name="description" content="��� ��� - ����Press [Enter] to close the terminal ...


А если использовать std::wcout, то вобще всякие �� удаляются, как будто их и не было. Что делать?

Автор: Cheloveck 11.8.2010, 16:36
libiconv

Автор: sigizmynd 20.8.2010, 11:19
char* rus(char* st)
{
         char* p = st;

        while (*p < 0)
        {
                if (*p >= 192)
                if (*p <= 239)
                        *p -= 64;
                else
                        *p -= 16;
                p++;
        }
         return st;
}
Вот, посмотри, вроде работает.
Переводит русские буквы в адекватные)

Автор: xvr 20.8.2010, 14:25
Цитата(sigizmynd @  20.8.2010,  11:19 Найти цитируемый пост)
Вот, посмотри, вроде работает.
Да уж. Вот ее полный функциональный эквивалент -
Код

char* rus(char* st) {return st;}

Цитата(sigizmynd @  20.8.2010,  11:19 Найти цитируемый пост)
Переводит русские буквы в адекватные)
Да, в точно такие же, но адекватные  smile 


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