2011-08-29 104 views
0

在我的grails應用程序中,當我在Tomcat下作爲戰爭運行時,UTF-8處理被搞砸了。當我運行應用程序時,請求字符串如下:當部署爲WAR或在Tomcat下運行時出現UTF-8問題

utf-8-demo-%C3%BC%C4%81%D1%84.txt設置爲utf-8-demo-üāф.txt,併爲所有後續請求返回字符串中的每個unicode字符的3個Unicode碼轉義序列。

在tomcat下,這個返回爲utf-8-demo-üÄÑ.txtutf-8-demo-\u00C3\u00BC\u00C4\u0081\u00D1\u0084.txt

在我的控制器之一,我有這樣的:

String s = params.file 
log.info("Filename: $s")//works in run-app, fails under tomcat 

什麼可能會導致運行的應用程序之間的這種行爲二分法和部署爲tomcat的下一場戰爭?

+1

你是否按照http://wiki.apache.org/tomcat/FAQ/CharacterEncoding#Q2中的步驟操作,即設置了'URIEncoding'和'useBodyEncodingForURI'? –

回答

2

server.xml<Connector>定義中添加屬性URIEncoding="UTF-8"