在Windows-1251编码中解析XML?

时间:2014-04-22 13:10:07

标签: ruby-on-rails xml nokogiri

尝试运行:

Nokogiri::XML(open("http://my.url.com/any/path.xml"))

例如:

Nokogiri::XML(open("http://bar-navig.yandex.ru/u?ver=2&show=32&url=google.com"))

但我明白了:

  

Nokogiri :: XML :: SyntaxError:不支持的编码窗口-1251

但仅限于服务器上。在本地计算机上它工作正常。

看起来iconv支持这种编码:

iconv --list | grep 1251
CP1251 MS-CYRL WINDOWS-1251

即使我尝试在bash中运行

xmllint 'http://bar-navig.yandex.ru/u?ver=2&show=32&url=google.com'

工作正常。

Ruby 1.9.3 Rails 3.2.16 nokogiri 1.6.1 操作系统:FreeBSD 8.1

这里的代码示例,在第16行。 https://github.com/anoam/seo_params/blob/master/lib/seo_params/yandex.rb

这是URL的示例: http://bar-navig.yandex.ru/u?ver=2&show=32&url=google.com

我该如何解决?

2 个答案:

答案 0 :(得分:0)

Nokogiri::XMLNokogiri::XML::Document.parse()的快捷方式,请查看Nokogiri::XML::Document.parse()的文档

parse(string_or_io, url = nil, encoding = nil, options = ParseOptions::DEFAULT_XML, &block) 
  

encoding(可选)是处理文档时应使用的编码。

答案 1 :(得分:0)

问题在这里得到解决: https://github.com/sparklemotion/nokogiri/issues/1093

谢谢大家!