2016-03-21 16 views
0

我有一個客戶要求支持將由用戶(中文,日文等)輸入的UTF-8數據保存到我們的應用程序數據庫並按原樣顯示它們。 爲此,我更改了我的數據庫字符集並更新了我的JDBC連接字符串以支持UTF-8數據處理。完成這個設置後,我成功地將中文存儲在我的數據庫中,並將其顯示在我的應用程序UI中。UTF-8數據請求在生產中的問題

但在我的生產服務器上,我遇到了這個問題。我在生產系統上進行了調查,發現我在我的生產應用程序界面中輸入的字符,例如「你叫什麼名字」被轉換爲「????????????????? ???????????????????????當我的生產應用程序收到請求。雖然當我在本地機器上運行相同的東西,我收到的字符,因爲它是,即如果我輸入「你叫什麼名字」在UI中,我得到「你叫什麼名字」在請求數據以及在我的家庭系統上。

在我生產中的應用部署在tomcat7和CentOS操作系統,而我的本地機器(開發環境)是Windows 7下,Tomcat 7

難道這引起了Tomcat配置一些問題?或者是它的一些在OS中設置?

請提出這可能是錯誤的?

+2

你在server.xml中檢查了Tomcat7的URIEncoding設置嗎?它應該設置爲UTF-8。 –

+0

你確實似乎有編碼問題。您必須始終記住,根據特定的編碼方案,每個字符序列都是對基礎字節序列的*解釋*。已經有很多這樣的編碼方案,並且還有幾種常用的編碼方案。如果處理鏈中的某個組件或機器根據與先前用於對其進行編碼的不同編碼解釋字節序列,則可能會產生垃圾。但也許不是:一些字符,特別是Unicode的前128個字符,被許多編碼以相同的方式進行編碼。 –

+0

@JoshuaMoore:你的建議就像一個魅力:)。最後,問題已解決,我正在以UTF-8獲得預期的字符輸入。萬分感謝。 – Raghav

回答

0

仔細檢查Tomcat7的server.xml是否已將URIEncoding設置爲UTF-8。這應該解決這個問題。