打开iso-8859-1编码的html与nokogiri混乱口音

时间:2012-03-16 16:30:11

标签: ruby encoding nokogiri

我正在尝试对使用charset = iso-8859-1编码的html页面进行一些更改

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 2012年3月24日

感谢您的评论。我设法部分解决了这个问题。 我相信这与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中看起来很好看。口音很到位。除了大写字母中的访问权限:-P我在Econom a中得到问号,应该有í(带有重音)

我认为越来越近了。如果某人有提示覆盖大写字母,那么它几乎可以完成。

干杯。

1 个答案:

答案 0 :(得分:0)

您用于下载文件的方法可能已更改编码,从而破坏了文件中的重音。试试这个看看它是否正常工作:

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

你是如何下载文件的?