我正在尝试阅读一个也带有希伯来字母的XML,其内容是:
<?xml version="1.0" encoding="UTF-8"?>
<keywords type="array">
<keyword>seo software</keyword>
<keyword>ipad</keyword>
<keyword>muffuletta manhattanization</keyword>
<keyword>cheap motels</keyword>
<keyword>שפות תכנות</keyword>
</keywords>
我的代码是:
# encoding: UTF-8
def use
#require "rexml/document"
file = File.new( "sources/rankabove-test.xml" )
puts file.read
end
然而,它对我没有帮助,'puts'命令的输出对希伯来字母来说是胡言乱语:
╫⌐╫ñ╫ץ╫¬ ╫¬╫¢╫á╫ץ╫¬
我正在使用win xp 32位。有人熟悉这个问题吗?我能做什么?
答案 0 :(得分:2)
我认为问题不是Ruby:
# encoding: UTF-8
puts RUBY_VERSION
# >> 1.9.2
xml = '
<?xml version="1.0" encoding="UTF-8"?>
<keywords type="array">
<keyword>seo software</keyword>
<keyword>ipad</keyword>
<keyword>muffuletta manhattanization</keyword>
<keyword>cheap motels</keyword>
<keyword>שפות תכנות</keyword>
</keywords>
'
require 'nokogiri'
doc = Nokogiri::XML(xml)
puts doc.search('//keyword').last.text
# >> שפות תכנות
require "rexml/document"
require 'rexml/node'
require 'rexml/xpath'
doc = REXML::Document.new(xml)
puts REXML::XPath.match(doc, '//keyword').last.text
# >> שפות תכנות
同时使用Nokogiri和REXML,我在Mac OS上获得相同的输出。