| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Ruby: Общие вопросы > nokogiri кириллица |
| Автор: RoRka 12.2.2010, 11:34 | ||||
Немного модифицированный пример с сайта Nokogiri:
Возникли проблемы с кириллицей. Помогите разобраться в чем дело.
|
| Автор: bilbobagginz 12.2.2010, 12:05 |
а в чем именно - проблемы ? |
| Автор: RoRka 12.2.2010, 12:57 | ||
Некорректно отображается:
Скорей всего гугл отдает не в UTF-8. Так как с другими сайтами проблем нет. Как тогда определить кодировку? |
| Автор: bilbobagginz 12.2.2010, 15:54 |
| RoRka, дело в том, что проблема может быть в 3-х местах:
если ты хочешь, чтобы все было в UTF-8, то проверь, что
ну и ессно, ты же зависишь от способностей удаленных серверов, если удаленный сервер не умеет слать в UTF-8, то твои "кувырки" ничем не помогут. ты можешь кстати попробовать определить кодировку автоматически. я думаю через диапазоны кодировок (определись какие кодировки ты поддерживаешь, и перекодируй все в юникод). самое сложное - определить точно в какой ты кодировке, а потом есть iconv |
| Автор: RoRka 12.2.2010, 20:56 | ||||||||
| Похоже проблема все же в сервере. Локаль настроена в UTF-8. Да и с другими сайтами таких проблем нет. Пример. На следующий код:
Такой вот результат:
Интересно, что с Mechanize таких проблем не возникает:
Результат:
|
| Автор: bilbobagginz 13.2.2010, 08:56 | ||
| попробуй кодировку вставить в стринг запроса у гугла, (так по крайней мере мой браузер делает):
ты же делаешь запрос в украинский филиал. На сервере гугл в Украине стоит какая-то украинская кодировка "по умолчанию", что вполне логично. насчет механизатора - посмотри какой именно запрос он высылает, и какую строку запроса конструирует. не удивляйся, если у механизатора для гуглы по умолчанию выставлена кодировка юникодом. |
| Автор: bilbobagginz 13.2.2010, 14:08 |
| Fortop, user-agent это правильно...там ведь тоже кодировка есть. |
| Автор: Fortop 13.2.2010, 15:44 | ||
| bilbobagginz, я бы и рад тебя обрадовать, да нечем - нет там кодировки. Скорее всего он просто определяет по браузеру как отдавать.
|
| Автор: bilbobagginz 13.2.2010, 21:34 |
| Fortop, ну я не знаю, пускай RoRka расскажет сам что он там накопал, и помогает ли ему в запросе просить кодировку.... |
| Автор: RoRka 14.2.2010, 10:37 | ||
Такой вот код не помог:
Но вариант с Mechanize мне очень даже подходит, поэтому в дальнейших "плясках" смысла не вижу. Спасибо, что пытались помочь. |
| Автор: bilbobagginz 15.2.2010, 09:53 |
| RoRka, где-то я видел, что можно было сделать force_encoding = 'utf-8' но если ты нашел другое решение - флаг тебе в ласты |
| Автор: niksan 4.5.2010, 14:44 |
| я через Iconv делал у себя |