У меня есть приложение Sinatra (http://analyzethis.espace -technologies.com ), которое выполняет следующие действия:
- Получить страницу HTML (через сеть / http)
- Создать документ Nokogiri из response.body
- Извлеките некоторую информацию и отправьте ее обратно в ответ. Ответ должен быть в кодировке UTF-8
Итак, я столкнулся с проблемой, пытаясь читать сайты, использующие кодировки windows-1256, такие как www.filfan.com или www.masrawy.com.
Проблема в том, что преобразование кодировки неверно, хотя ошибки не выдаются.
net / http response.body.encoding предоставляет ASCII-8BIT, который нельзя преобразовать в UTF-8
Если я выполняю Nokogiri :: HTML (response.body) и использую селекторы css для получения определенного содержимого со страницы - скажем, содержимого тега title, например - я получаю строку, которая при вызове string.encoding возвращает WINDOWS-1256. Я использую string.encode ("utf-8") и отправляю ответ, используя его, но опять-таки ответ не правильный.
Любые предложения или идеи о том, что не так в моем подходе?