Ruby 不能很好地处理希伯来字母

发布于 2024-12-03 11:31:15 字数 694 浏览 1 评论 0原文

我正在尝试读取一个包含希伯来字母的 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位。有谁熟悉这个问题吗?有什么我可以做的吗?

I am trying to read an XML which have also hebrew letters and its content is:

<?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>

And my code to do it is:

# encoding: UTF-8 
def use
  #require "rexml/document"
  file = File.new( "sources/rankabove-test.xml" ) 
  puts file.read  
end

However, it doesn't help me, and the output of the 'puts' command is gibberish for the Hebrew letters:

╫⌐╫ñ╫ץ╫¬ ╫¬╫¢╫á╫ץ╫¬

I am using win xp 32 bit. Does anyone familiar with that problem? Anything I can do?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

荭秂 2024-12-10 11:31:15

我不认为问题出在 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 上得到相同的输出。

I don't think the problem is 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
# >> שפות תכנות

Using both Nokogiri and REXML I get the same output on Mac OS.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文