我目前在处理 Amazon API 的结果时遇到问题。
该服务返回一个带有 unicode 字符的字符串:在 Mac 上学习 Objective\xE2\x80\x93C(学习系列)
在 Ruby 1.9.1 中,字符串甚至无法被处理:
REXML::ParseException: #<Encoding::CompatibilityError: incompatible encoding regexp match (UTF-8 regexp with ASCII-8BIT string)>
...
Exception parsing
Line: 1
Position: 1636
Last 80 unconsumed characters:
Learn Objective–C on the Mac (Learn Series)
作为例外,您的字符串是 ASCII-8BIT 编码的。您应该更改编码。有一个很长的故事关于这一点,但如果您对快速解决方案感兴趣,只需force_encoding
在进行任何处理之前对字符串进行处理:
s = "Learn Objective\xE2\x80\x93C on the Mac"
# => "Learn Objective\xE2\x80\x93C on the Mac"
s.encoding
# => #<Encoding:ASCII-8BIT>
s.force_encoding 'utf-8'
# => "Learn Objective–C on the Mac"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)