Java 中文 亂碼問題

rgqancy發表於2015-12-07

Java平臺遇到的兩類問題:

1.原始碼中文亂碼問題:

  a.Java檔案,中文亂碼,配置IDE的Preference的編碼格式,總有一款適合你。

  b.HTML(JSP、....)檔案,中文亂碼,新增並設定HTML的contentType、charset即可。<%@ page contentType="text/html;charset=GBK"%>

2.應用程式中輸入中文亂碼問題:

  a.selvert的過濾器filter處理中文亂碼問題:

    修改web.xml中的配置引數:

            <filter>      <!--注意這裡是filter,不要配置成servlet-->
                <filter-name>CharactorFilter</filter-name>    <!--過濾器名稱-->
                <filter-class>cn.com.Filter.CharactorFilter</filter-class>  <!--過濾器的完整類名-->
                <init-param>   <!--初始化引數-->
                    <param-name>encoding</param-name>  <!--引數名稱-->
                    <param-value>utf-8</param-value>   <!--引數值-->
                </init-param>
            </filter>
            <filter-mapping> <!--過濾器對映-->
                <filter-name>CharactorFilter</filter-name><!--過濾器名稱-->  
                <url-pattern>/*</url-pattern><!--URL對映,給所有頁面處理亂碼-->
            </filter-mapping>

  b.Tomcat支援中文的配置問題: 更改 Tomcat安裝目錄下conf\server.xml,指定瀏覽器的編碼格式為“簡體中文”:

            <Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
            enableLookups="false" redirectPort="8443" acceptCount="100"
            connectionTimeout="20000" disableUploadTimeout="true" URIEncoding='GBK' />

 

注意:Spring MVC Controller中解析GET方式的中文引數會亂碼的問題:Spring的Filter只對HTTP的Post方法做了過濾處理 ,對Get方法則未做處理,因此無論如何配置Filter均是無效的,因此只能上溯一層,即從WEB應用容器層到Tomcat層配置Server.xml的Connector的URIEconding=“UTF-8"屬性即可。

 

相關文章