首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >REXML和编码

REXML和编码
EN

Stack Overflow用户
提问于 2013-04-10 14:25:38
回答 1查看 724关注 0票数 0

有人能给我解释一下这个结果吗?

代码语言:javascript
复制
#!/usr/bin/env ruby
# encoding: utf-8

require 'rexml/document'

doc = REXML::Document.new(DATA)
puts "doc: #{doc.encoding}"
REXML::XPath.each(doc, '//item') do |item|
  puts "  #{item}: #{item.to_s.encoding}"
end

__END__
<doc>
  <item>Test</item>
  <item>Über</item>
  <item>8</item>
</doc>

输出:

代码语言:javascript
复制
doc: UTF-8
  <item>Test</item>: US-ASCII
  <item>Über</item>: UTF-8
  <item>8</item>: US-ASCII

看起来REXML似乎并不关心文档编码是什么,并开始自动检测每个项目的编码...即使UTF-8是原始编码,我是否注定要对从REXML中提取的每个字符串执行encode('UTF-8')操作?这是怎么回事?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-10 15:07:47

您正在Element上调用Node.to_s()。要获取实际文本,请将Element.get_text()添加到链中(并对其调用Text.to_s() ):

代码语言:javascript
复制
puts "  #{item}: #{item.get_text.to_s.encoding}"

输出:

代码语言:javascript
复制
doc: UTF-8
  <item>Test</item>: UTF-8
  <item>Über</item>: UTF-8
  <item>8</item>: UTF-8
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15918484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档