(对不起,如果一个新手问题......我已经做了很多研究,老实说......)
我正在编写一些 Ruby on Rails 代码来解析 RSS/ATOM 提要。我的代码在一个讨厌的“£”符号上抛出。
在做任何其他事情之前,我一直在尝试规范化提要的描述和标题字段的方法:
descr = self.description.mb_chars.normalize(:kc)
但是,当它遇到带有“£”的字符串时,我猜测 mb_chars 遇到了问题并返回了一个常规的 Ruby String 对象。我得到错误:
undefined method `normalize' for #<String:0x5ef8490>
那么,防御性地准备这些字符串以插入数据库的最佳过程是什么?(我还需要对它们进行一堆字符串处理)
我的问题很复杂,因为我不知道我正在处理的提要的格式。例如,我对以下行有一些运气:
descr = Iconv.new('UTF-8//IGNORE', 'UTF-8').iconv descr
但是,当它遇到“£”时,它只会截断该点之后的所有内容。
当我使用 String.inspect 函数显示“£”符号时,它显示在“\243”处。如果无法“正确”处理此符号,我很乐意将其替换为另一个值(例如“GBP”)。因此,该代码的帮助也将不胜感激。