現在、私は 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 ボタンの言語エンコード] > [その他のオプション] に移動します。