我想交下列字符串「`.4.13 - 30613£₤©™」的UTF-8編碼一個Grails服務器一旦部署爲WAR,我沒有Tomcat7Grails的,Tomcat的7,REST客戶端和人物
我們的服務器可以作爲一個API的兩個實例,和網絡層之間的通信完全seperately時運氣。通過對Web App的POST請求將數據保存到數據庫,然後Web App向服務器發送POST(或PUT for updates)請求以保存數據。
本地當我啓動Web應用程序和服務器使用「運行應用程序」,而不是當我們移動到非本地enviroments與Tomcat7和部署WAR文件,這工作得很好。
Initally我認爲這可能與報告的錯誤http://jira.grails.org/browse/GRAILS-8873但仔細檢查後,似乎UTF-8是默認的,無論如何,和目前正在使用
非本地enviroments用以下結構(在Tomcat7部署WAR)
Entry Point -> Apache 2.2 < - > Web App < - > Server
本地環境中使用以下結構(運行應用程序)
Entry Point -> Web Abb < - > Server
我有輸出在編組字符串的時間值,以確保在它發送到服務器,這是正確的編碼
DEBUG MarshallService - Marshalling Property : name of value [ `.4.13 - 30613 £ ? © ™]
這是直接從日誌從網絡發出的請求的應用程序到服務器 忽略內容長度錯誤的事實,我爲了可讀性而截斷了主體。
DEBUG org.apache.http.headers - >> PUT /baseline-server/baseline/pwqi9tzyTRWX5oZogfKjJw HTTP/1.1
DEBUG org.apache.http.headers - >> Accept: application/json; charset=utf-8
DEBUG org.apache.http.headers - >> Content-Length: 349
DEBUG org.apache.http.headers - >> Content-Type: application/json
DEBUG org.apache.http.headers - >> Host: localhost:9001
DEBUG org.apache.http.headers - >> Connection: Keep-Alive
DEBUG org.apache.http.headers - >> Accept-Encoding: gzip,deflate
DEBUG org.apache.http.wire - >> "{"name":"`.4.13 - 30613 [0xa3] ? [0xa9] [0x99]"}
我已經在其他幾個地方讀了幾答案和之前的任何虛擬主機
AddDefaultCharset utf-8
在兩個Tomcat實例(web.xml)中
做了以下在Apache 2.2的httpd.conf文件
<filter>
<filter-name>setCharacterEncodingFilter</filter-name>
<filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<async-supported>true</async-supported>
</filter>
此外,根據其他答案,我ahve確保我們使用webxml 1.4.1
然而,當值達到服務器端,值都???
我發現了什麼特別奇怪的是即將離任的JSON不會出現在所有
任何援助將不勝感激
連接器已經完成,但它現在在lcase,這會有所作爲嗎?我也將UTF-8編碼添加到數據源中無濟於事。此外,編碼設置也已設置。 – 2013-04-11 02:06:32
嘗試執行命令>語言環境。檢查所有結果是否都是UTF8並且沒有警告報告 – 2013-04-11 07:10:06
所有環境都在運行窗口,您是否有任何equivilent命令? – 2013-04-11 23:58:25