目前我正在使用PayPal结帐处理Rails应用程序。 PayPal通过IPN消息与我的应用进行通信。
在许多情况下一切正常,但如果有人使用像德语变音符号(öüäß
)这样的特殊字符,我会在字符串中得到\xf6
。
如何将其转换为人类可读的字符'ö'
?
答案 0 :(得分:9)
问题是数据被编码为Windows-1252,但ruby不会自动检测到。你可以像这样哄它:
my_string = "Sch\xF6ning"
my_string.force_encoding('windows-1252').encode('utf-8')
=> "Schöning"
你可以制作一个可重复使用的转换器来帮助你做同样的事情:
ec = Encoding::Converter('windows-1252', 'utf-8')
ec.convert(my_string)
=> "Schöning"
答案 1 :(得分:0)
请注意,paypal方面有一个设置:
在卖家paypal帐户中转到:个人资料>我的销售工具> PayPal按钮语言编码>更多选择