【问题标题】:Change unicode characters in UTF-8 from symbol to numeric code将 UTF-8 中的 unicode 字符从符号更改为数字代码
【发布时间】:2011-11-27 09:53:43
【问题描述】:
我正在使用 Ruby(如果有帮助的话还有 Nokogiri)来编码一些文档。我想将实际的 unicode 字符(如 “)更改为 html 实体(如 “)。我该怎么做呢?我知道我可以用类似的东西来做一个角色
s = '“'
puts "&##{.unpack('U').first};" # gives “
但是有没有办法使用 iconv 或 nokogiri 正确地做到这一点?
【问题讨论】:
标签:
ruby
unicode
nokogiri
iconv
【解决方案2】:
这可能不正确,但 nokogiri 在不理解编码时会这样做(我认为实际上是 libxml2):
Nokogiri::HTML(html,nil,'klingon')
【解决方案3】:
我想出了这种方法,它采用了一种相当蛮力的方法,肯定(希望?)被编译的库解决方案所取代?它虽然有效:
def clean(text)
# Convert html chars to entities.
text = text.gsub(/[^\u{20}-\u{7E}]/){|char| "&##{char.unpack('U')[0]};"}
end