概述:
把一個簡單的web項目部署到機器上後 在瀏覽器中訪問顯示中文亂碼,一開始以爲是瀏覽器編碼問題,調試後發現跟前端沒有關係。
解決辦法:
網上找了一些方法,大概有以下幾種辦法:
1、修改tomcat中的conf/server.xml,在<Connector中加入URIEncoding="utf-8",舉例如下:
<Connector connectionTimeout="20000"
port="8080"
protocol="HTTP/1.1"
redirectPort="8443"
maxPostSize="0"
URIEncoding="UTF-8"/>
2、修改tomcat中的bin/catalina.bat,增加一行:
set “JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG% -Dfile.encoding=UTF-8”
3、修改conf/web.xml,在<server>標籤中 增加fileEncoding,我的web.xml中位置大概在103行,具體如下:
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>fileEncoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
解決情況:
當時試了1、2,都是失敗,最後試了第3種方法 結果是成功的。
第三種情況中的fileEncoding大概是,如果不寫 默認用系統的字符編碼方式去解析,可能那臺機器剛好沒有相應的字符編碼,所以出現中文亂碼。在tomcat中指定fileEncoding爲utf-8這個問題就解決了