2013-02-28 44 views
0

我遇到了編碼問題(我認爲是這樣)實體。在更多細節中,我有複合組件負責就地編輯 - 用戶點擊文本,點擊保存並將數據保存在數據庫中。問題是,當用戶輸入一些非英文字符(變音符號?)編碼中斷。例如,如果用戶將在實體中輸入波蘭語字符ą,則會得到類似ºÄ的內容。數據存儲在mysql數據庫中,其編碼設置爲UTF-8,頁面上顯示的數據也以UTF-8編碼。我從客戶端(瀏覽器)發送數據到服務器後,檢查出現問題,但我不知道什麼是錯的。客戶端 - >服務器編碼中斷

回答

0

我終於找到了解決方案。我所要做的就是將字符編碼過濾器添加到web.xml中。

<filter> 
    <filter-name>SetCharacterEncoding</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> 
</filter> 
    <filter-mapping> 
    <filter-name>SetCharacterEncoding</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
+0

請注意,這僅適用於將webapp部署到Tomcat而不是其他服務器時。因此,您的web應用程序與Tomcat(甚至更多,特定的最低Tomcat版本!)緊密耦合**,並且對其他服務器或更舊版本的Tomcat本質上*不可移植*。而是創建您自己的過濾器(僅需要1行業務代碼)或使用JSF實用程序庫(如OmniFaces):http://stackoverflow.com/questions/15139713/how-to-solve-encoding-problems-when-using-奇怪字符的標題在jsf-an/15144169#15144169 – BalusC 2013-03-03 03:22:37

+0

謝謝!我會嘗試的。 – pepuch 2013-03-03 15:25:19