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

+0

@ S.Mark они «особенные» в том смысле, что по сравнению с большинством латинского языка у них есть ОГРОМНОЕ количество кодовых страниц/символов, поэтому в некоторых случаях может потребоваться дополнительная «специальная» обработка, чем латинские языки. Но другие мудрые для большей части, пока приложение может обрабатывать Unicode, они могут обрабатываться примерно так же, как и обычный текст. – Pharaun

ответ

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

Работает для меня, если ваш терминал не поддерживает японские символы, выгрузите его в файл.

+0

Yay, спасибо, Марк! – moshimoshi

Смежные вопросы