将UTF-8中的unicode字符从符号更改为数字代码



我使用Ruby(和Nokogiri,如果有帮助的话)对一些文档进行编码。我想改变实际的unicode字符(如)到html实体(如“)。我该怎么做呢?我知道我可以写一个字符比如

s = '“'    
puts "&##{.unpack('U').first};"   # gives “

但是是否有一种方法可以正确地使用iconv或nokogiri?

有一个HTMLEntities gem。对于十进制编码,它与您的代码(unpack)大致相同。

这可能不合适,但nokogiri这样做(libxml2我认为实际上)当它不理解编码:

Nokogiri::HTML(html,nil,'klingon')

我想出了这个方法,它采用了一种蛮力的方法,当然(希望?)被编译库解决方案所取代?

def clean(text)
  # Convert html chars to entities.
  text = text.gsub(/[^u{20}-u{7E}]/){|char| "&##{char.unpack('U')[0]};"}
end

相关内容

  • 没有找到相关文章

最新更新