Открыть HTML-код в iso-8859-1 с нокогири портит акценты - PullRequest
1 голос
/ 16 марта 2012

Я пытаюсь внести некоторые изменения в html-страницу с кодировкой charset = iso-8859-1

doc = Nokogiri :: HTML (open (html_file)) *

ставит doc.to_html портит все акценты на странице.Поэтому, если я сохраню его обратно, в браузере он тоже будет поврежден.

Я все еще на Rails 3.0.6 ... Есть какие-нибудь советы, как решить эту проблему?

Вот один изнапример, страдающие страницы: http://www.elmundo.es/accesible/elmundo/2012/03/07/solidaridad/1331108705.html

Я также спрашивал в Github, но у меня такое чувство, что это будет быстрее.Я обновлю оба места, если получу лекарство от этой проблемы.

ОБНОВЛЕНИЕ 1 24 марта 2012

Спасибо за комментарии.Мне удалось частично решить эту проблему.Я считаю, что это не имеет ничего общего с Nokogiri однако.Как я упоминал в некоторых комментариях, мне просто нужно открыть и сохранить файл, чтобы испортить акценты.

Самое близкое к полученному мною исправление заключается в следующем:

thefile = File.open(html_file, "r") 
text =  thefile.read
doc = Nokogiri::HTML(text)
... do any stuff with nokogiri
File.open(html_file, 'w') {|f| f.write(doc.to_html) }

Оригиналфайл пришел с iso-8859-1, сохранение идет в UTF-8, в значительной степени это выглядит нормально.Акценты на месте.За исключением доступа в заглавной букве: - Я получаю знаки вопроса, как в Econom ina, там должно быть í (я с ударением)

Становится ближе, я думаю.Если у кого-то есть подсказка и для заглавных букв, это может быть почти сделано.

Приветствия.

1 Ответ

0 голосов
/ 17 марта 2012

Метод, который вы использовали для загрузки файла, возможно, изменил кодировку, нарушив акценты в файле. Попробуйте, чтобы убедиться, что он работает правильно:

require 'rubygems'
require 'nokogiri'
require 'open-uri'

url = 'http://www.elmundo.es/accesible/elmundo/2012/03/07/solidaridad/1331108705.html'
doc = Nokogiri::HTML(open(url))
File.open("1331108705.html", "w") {|f| f.write(doc.to_html)}
system('open', '1331108705.html') # on Mac OS X, this will open the html file in your browser

Как вы скачали файл?

...