Я использую open-uri для чтения веб-страницы, которая, как утверждается, закодирована в iso-8859-1. Когда я читаю содержимое страницы, open-uri возвращает строку, закодированную в ASCII-8BIT.
open("http://www.nigella.com/recipes/view/DEVILS-FOOD-CAKE-5310") {|f| p f.content_type, f.charset, f.read.encoding }
=> ["text/html", "iso-8859-1", #<Encoding:ASCII-8BIT>]
Я предполагаю, что это связано с тем, что на веб-странице есть байт (или символ) \ x92, который не является допустимым символом iso-8859. http: // ru .wikipedia.org / wiki / ISO / IEC_8859-1 .
Мне нужно хранить веб-страницы в виде файлов в кодировке utf-8. Любые идеи о том, как поступить с веб-страницей, где кодировка неверна. Я могу поймать исключение и попытайтесь угадать правильную кодировку, но это кажется громоздким и подверженным ошибкам.