使用Nokogiri抓住Kanji网页

时间:2010-06-26 12:57:50

标签: ruby unicode character-encoding special-characters nokogiri

我想在维基百科页面上抓一个汉字表,我在使用Nokogiri时遇到了麻烦。这是我的剧本:

# -*- encoding: utf-8 -*-

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

link = 'http://en.wikipedia.org/wiki/List_of_j%C5%8Dy%C5%8D_kanji'

doc = Nokogiri::HTML(open(link))
doc.encoding = 'UTF-8'

d = []
doc.css('.wikitable tr').each do |tr|
  row = []
  tr.css('td').each {|td| row << td.text }
  d << row
end

d.each {|row| row.each {|td| puts td } }
y = YAML.dump(d, STDOUT)
puts y

我的麻烦在于,它返回二元字符(如ããã)而不是汉字字符(如人)。

如何编辑它以解决此问题?非常感谢。

1 个答案:

答案 0 :(得分:0)

doc = Nokogiri::HTML(open(link),nil,'UTF-8')

对我而言,如果您的终端不支持日文字符,请将其转储到文件中。