我确信这很容易,但我被所有这些反斜杠打结了。
我有一些数据是从网站上(礼貌地)抓取的。偶尔我会想到这样一句话:
u00a362 000? you must be joking
当然应该是“2000 英镑?”你一定是在开玩笑'。 irb 中的一个简短测试破译了它。
ruby-1.9.2-p180 :001 > string = "u00a3"
=> "u00a3"
ruby-1.9.2-p180 :002 > string = "\u00a3"
=> "£"
当然:加个反斜杠就可以解码了。我在 this question 的帮助下创建了以下内容:
puts str.gsub('u00', '\\u00')
这导致 \u00a3
被输出。这一切都很好,但我希望它在字符串本身中是 £。仅仅 put
是不够的。
gsub('u00a3', '£')
毫无意义,因为我会遗漏其他字符。
感谢您的帮助。
最佳答案
尝试使用 Iconv 库来转换传入的字符串。您还可以查看 stringex gem。它有“走另一条路”的方法,但它可能会提供您正在寻找的映射。也就是说,如果您的编码不正确,就不可能正确处理。
关于ruby - 添加反斜杠以修复 ruby 字符串中的字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6835846/