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\所有用户\testütestdev1.txt <名称>

经过一番调查。看起来这是由于 ActiveSuppport to_xml 方法没有转义 unicode 字符。有没有人遇到过这个问题并知道如何解决?

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 回答