2017-01-08 68 views
0

我在我的春天項目編碼問題。現在我用-Dfile.encoding = ISO-8859-1參數運行jvm(tomcat)。在我的.jsp文件是行:春天的HTML代碼,而不是ISO-8859-1編碼

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" session="true" %> 
<meta charset="iso-8859-1"> 

在web.xml中我定義的編碼過濾

<filter> 
    <filter-name>encodingFilter</filter-name> 
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
    <init-param> 
     <param-name>encoding</param-name> 
     <param-value>ISO-8859-1</param-value> 
    </init-param> 
    <init-param> 
     <param-name>forceEncoding</param-name> 
     <param-value>true</param-value> 
    </init-param> 
</filter> 
<filter-mapping> 
    <filter-name>encodingFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

但是,當我與波蘭字母值傳遞像łśćżź我有一個問題。在我的java控制器打印(並保存在數據庫中)值與HTML代碼,而不是波蘭語字母。例如

aaalłłł 被保存爲 AAAL [AM]#322; [AM]#322; [AM]#322; 我寫[am]而不是&符號。

我檢查了[am]#322;是ł信的HTML代碼。 如何解決它?

回答

0

如果您想將數據保存到數據庫,並在此之前,在普通視圖中的數據,檢查數據庫的編碼,即:

CREATE DATABASE table DEFAULT CHARACTER SET 'utf8' DEFAULT COLLATE 'utf8_unicode_ci'; 

此外,檢查URL表格,即:

jdbc:mysql://localhost:3306/table?useUnicode=true&amp;characterEncoding=UTF-8&amp;characterSetResults=UTF-8&amp;useJDBCCompliantTimezoneShift=true&amp;useLegacyDatetimeCode=false&amp;serverTimezone=UTC" 

如果問題不將數據保存到數據庫,嘗試集線JSP:

<%@ page contentType="text/html;charset=UTF-8" language="java" %> 

在極端情況下,建議使用ajax與json,設置任何編碼。