1

我想抓住维基百科页面上的汉字表,并且使用特殊字符使用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 

我的麻烦是,它返回二进制字符(如ã¯)而不是汉字字符(如人)。

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

+0

汉字不是特殊字符,恕我直言,它们只是普通的日语字符。 – YOU 2010-06-26 13:26:26

+0

@ S.Mark他们是“特殊”的,因为与大多数基于拉丁语的语言相比,他们拥有大量的代码页/符号,因此在某些情况下可能需要比基于拉丁语的语言更多的“特殊”处理。 但是对于大多数情况来说,只要应用程序可以处理Unicode,他们可以像普通文本一样处理。 – Pharaun 2010-07-21 18:06:10

回答

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

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

+0

耶,非常感谢,马克! – moshimoshi 2010-06-26 18:06:45