【问题标题】: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


    【解决方案1】:

    HTMLEntities gem。由于它是十进制编码,它的作用与您的代码(解包)大致相同。

    【讨论】:

      【解决方案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
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-07-19
          • 1970-01-01
          • 2017-01-24
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多