2013-04-09 2 views
0

최근 레일 3.2.13으로 옮겼습니다. ActiveResource를 사용하여 웹 서비스를 호출합니다. ActiveResoure는 XML 페이로드를 생성합니다. 우리는 새로운 xml이 유니 코드 문자를 벗어나지 않는다는 것을 알아 차렸다. 예를 들어 :레일 3 요청을 보낼 때 ActiveResource가 XML에서 유니 코드를 이스케이프 처리하지 않습니다.

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

에서 2.3, 그것은 & # 252 ü을 피할 것 레일; :

 
    &ltname> C:\Documents and Settings\All Users\test&#252;testdev1.txt &ltname> 

조사 후. 유니 코드 문자를 이스케이프 처리하지 않는 ActiveSuppport to_xml 메서드 때문입니다. 누구든지이 문제를 안고 그것을 해결하는 방법을 알고 있습니까?

답변

1

당신은 그

> 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>" 
+0

에 대한 Rack::Utils를 사용할 수 있습니다 그러나 문제는 우리가 XML을 생성하는 웹 서비스 호출을 만들기 위해 active_resource를 사용하고 있기 때문에 자신을 탈출 할 수 없다는 것입니다. – DrChanimal