天天看點

spring mvc前端頁面中文亂碼問題解決思路

1、判斷是否是前端頁面的編碼問題

直接在浏覽器中打開html,如果頁面顯示正常說明不是html頁面的編碼問題;否則的話在head部分加入

<meta charset="utf-8">

一般能解決html頁亂碼問題

2、判斷是不是Spring的編碼問題

在web.xml中加入filter,一般能解決問題

<filter>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/</url-pattern>
    </filter-mapping>

           

3、判斷是否是tomcat或jetty的編碼問題

我的剛好就是這個問題,maven中内嵌jetty,但jetty的webdefault.xml,把zh指向的編碼設定為gb2312,導緻浏覽器自動把字元編碼設定的為簡體中文 gb2312,導緻頁面顯示亂碼

解決:在web.xml添加如下配置

<locale-encoding-mapping-list>
        <locale-encoding-mapping>
            <locale>zh</locale>
            <encoding>UTF-8</encoding>
        </locale-encoding-mapping>
</locale-encoding-mapping-list>
           

把zh所指向的編碼設定為gb2312更改為UTF-8即可。