ruby - 将转义的 XML 实体转换回 UTF-8

标签 ruby escaping xml-entities

所以我在 XML 文件中得到了这个 UTF-8 字符串:

Horrible place. ☠☠☠

当我将它提供给外部应用程序时,有趣的字符以 XML 实体的形式返回:

Horrible place. ☠☠☠

在 Ruby 中,如何将该字符串转换回 UTF-8?可能有一个非常简单的解决方案,但我无法在标准库中找到任何东西;例如。 CGI.unescapeHTML(对于 > 之类的东西工作得很好)似乎完全忽略了它们。

ree-1.8.7-2010.02 > CGI.unescapeHTML('>')
 => ">" 
ree-1.8.7-2010.02 > CGI.unescapeHTML('☠')
 => "☠" 

最佳答案

好吧,因为它是 XML 编码的,所以我会选择 XML 解析器:

require 'nokogiri'

frag = 'Horrible place. ☠☠☠'
doc = Nokogiri::XML.fragment(frag)
puts doc.text
# >> Horrible place. ☠☠☠

关于ruby - 将转义的 XML 实体转换回 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4559104/

相关文章:

ruby-on-rails - 将多个对象合并在一起的更有效方法

cmd - 如何在 Windows cmd.exe 中正确转义文件名?

javascript - 如何在 JavaScript 中为 XML 创建有效的字符串?

Java 和 XML : How to get list of included files

java - 确定字符串中是否存在转义字符

java - 对于超过 3.0 的 Unicode 版本,如何将 Java 字符串转换为 xml 实体?

ruby - google-api-ruby-client:请求序列化导致空请求

mysql - 将 LIMMYSQL.dll 从 MySql 复制到 Ruby bin 文件夹时出现 Rails 服务器错误

php - 如何在 python 或 ruby​​ 中执行此操作(PHP)?

windows - CALL 通过时百分号消失