4

目前我正在使用 PayPal 结帐开发 Rails 应用程序。PayPal 使用 IPN 消息与我的应用程序通信。

在许多情况下,一切正常,但如果有人使用像德语变音符号 ( öüäß) 这样的特殊字符,我会\xf6进入字符串。

如何将其转换为人类可读的 char 'ö'

4

2 回答 2

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"
于 2013-03-06T17:37:01.900 回答
0

请注意,在贝宝端有一个设置:

在卖家的 paypal 帐户中转到:个人资料 > 我的销售工具 > PayPal 按钮语言编码 > 更多选项

于 2014-10-23T09:02:21.443 回答