【发布时间】:2012-03-16 16:30:10
【问题描述】:
我正在尝试对使用 charset=iso-8859-1 编码的 html 页面进行一些更改
doc = Nokogiri::HTML(open(html_file))
puts doc.to_html 会弄乱页面中的所有重音符号。因此,如果我将其保存回来,它在浏览器中也会出现问题。
我仍在使用 Rails 3.0.6... 任何提示如何解决这个问题?
这是遭受此问题的页面之一,例如:http://www.elmundo.es/accesible/elmundo/2012/03/07/solidaridad/1331108705.html
我也在 Github 上问过,但我觉得这会更快。如果我能解决问题,我会更新这两个地方。
更新 1 2012 年 3 月 24 日
感谢 cmets。我设法部分解决了这个问题。 然而,我相信这与 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 中一样的问号,应该有 í(带重音的 i)
我想越来越近了。如果有人暗示要遮盖大写字母,那可能就差不多完成了。
干杯。
【问题讨论】:
-
只需将
doc保存到文件中即可为我保留重音符号。您是如何修改和保存文档的? -
谢谢约翰。 File.open(html_file, 'w') {|f| f.write(doc.to_html) } 我是这样保存的,不需要做任何改变来弄乱口音。该文件的原始位置在我的驱动器上,而不是从网上获取。我有 OSX 10.6,我的 ruby 版本是 1.9.2