所以我在 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/

10-10 13:52