目前我正在使用 PayPal 结帐开发 Rails 应用程序。PayPal 使用 IPN 消息与我的应用程序通信。
在许多情况下,一切正常,但如果有人使用像德语变音符号 ( öüäß
) 这样的特殊字符,我会\xf6
进入字符串。
如何将其转换为人类可读的 char 'ö'
?
目前我正在使用 PayPal 结帐开发 Rails 应用程序。PayPal 使用 IPN 消息与我的应用程序通信。
在许多情况下,一切正常,但如果有人使用像德语变音符号 ( öüäß
) 这样的特殊字符,我会\xf6
进入字符串。
如何将其转换为人类可读的 char 'ö'
?
问题是数据被编码为 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"
请注意,在贝宝端有一个设置:
在卖家的 paypal 帐户中转到:个人资料 > 我的销售工具 > PayPal 按钮语言编码 > 更多选项