LINUX.ORG.RU

Ответ на: комментарий от Eligz

Там кодировка windows 1251, а в linux обычно utf8.

anonymous ()
Ответ на: комментарий от Eligz

Пишу на с++. Результат выводится в терминал. Введи в терминале curl http://www.nix.ru и увидишь их.

Всё правильно. У тебя в терминале кодировка utf-8, а сервер выдаёт страничку в кодировке cp1251. Попробуй так (в терминале):

curl www.nix.ru | iconv -f cp1251
Для перекодирования в своей программе так же можешь использовать библиотеку iconv. Смотри man 3 iconv_open, man 3 iconv и man 3 iconv_close. Там всё просто.

Deleted ()
Ответ на: комментарий от anonymous

Эти быдлокодеры не указали в html кодировку.

Они её указали в HTTP-заголовках:

$ wget -O /dev/null -S -q 'http://www.nix.ru/' 2>&1 | grep -i charset
  Content-Type: text/html; charset=WINDOWS-1251

Deleted ()
Ответ на: комментарий от Deleted

char c[] = "www.nix.ru"; string s = download_page(c); cout << s.find(«НИКС», 0) << endl;

Проблема в том, что подстрока «НИКС» не находится в s. Главное с латинскими символами все работает нормально. Могу ли я как-нибудь в curl задать нужную кодировку? Не очень хочется использовать iconv.

Eligz ()
Ответ на: комментарий от Eligz

Так чтоб в s уже приходил нормальный кириллический текст!!!

Eligz ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.