0

最近 Rails 3.2.13 に移行しました。ActiveResource を使用して Web サービスを呼び出します。ActiveResoure は xml ペイロードを生成します。新しい xml は Unicode 文字をエスケープしないことに気付きました。例えば:

  <name> C:\Documents and Settings\All Users\testütestdev1.txt </name>

Rails 2.3 では、ü を ü にエスケープします。:

  <名前> C:\Documents and Settings\All Users\testütestdev1.txt <名前>

いくつかの調査の後。Unicode 文字をエスケープしない ActiveSuppport の to_xml メソッドが原因のようです。誰かがこの問題を抱えていて、それを解決する方法を知っていますか?

4

1 に答える 1

1

あなたはそのために使うことができRack::Utilsます

> Rack::Utils.escape("  <name> C:\Documents and Settings\All Users\testütestdev1.txt </name>")
#=> "++%3Cname%3E+C%3ADocuments+and+SettingsAll+Users%09est%C3%BCtestdev1.txt+%3C%2Fname%3E"

> Rack::Utils.unescape(_)
#=> "  <name> C:Documents and SettingsAll Users\testütestdev1.txt </name>"
于 2013-04-09T23:24:44.457 に答える