1. 程式人生 > >tomcat 7 到tomcat8 亂碼問題

tomcat 7 到tomcat8 亂碼問題

work name connector als 請求 req pattern size enable

tomcat8自動處理了get 請求的亂碼,默認為UTF-8,

而tomcat7默認為iso-8859-1

解決方法很簡單:
修改tomcat下的conf/server.xml文件,找到如下代碼:

<Connector port="80" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
這段代碼規定了Tomcat監聽HTTP請求的端口號等信息。可以在這裏添加一個屬性:URIEncoding,
即可讓Tomcat(默認編碼)以ISO-8859-1的編碼處理get請求。更改後的代碼如下所示: URIEncoding="ISO-8859-1"
<Connector port="80" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
URIEncoding="ISO-8859-1"/>

我們只要處理post 亂碼問題

(1): request.setCharacterEncoding("UTF-8");
(2):過濾器處理  
<!--
post 請求亂碼--> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class
> <async-supported>true</async-supported> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>

tomcat 7 到tomcat8 亂碼問題