項目中get/post請求中文亂碼的解決方案


一.解決get請求中文亂碼的方案:

方案(推薦)1:

一般情況下tomcat(8之前)服務器的編碼默認是ISO8859-1,所以要對get請求提交的參數進行重新編碼:

  •   String userName = new String(request.getParamter("userName").getBytes("ISO8859-1"),"utf-8");

方案(不推薦)2:

既然知道了tomcat服務器的編碼默認是ISO8859-1,那么可以修改tomcat的編碼格式:在Tomact的conf/server.xml中添加URIEncoding="utf-8" ,如下:

  •   <Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080"protocol="HTTP/1.1" redirectPort="8443"/>

二.解決post請求中文亂碼的方案:

在項目中web.xml配置文件中加入如下配置可以解決中文亂碼的問題: 

  •   <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>
  •   </filter>
  •   <filter-mapping>
  •     <filter-name>CharacterEncodingFilter</filter-name>
  •     <url-pattern>/*</url-pattern>
  •   </filter-mapping>

注意:

此處要注意自己的tomcat服務器的版本,如果版本是8之前的版本,編碼默認使用的是ISO8859-1,版本是8之后(包括8)編碼默認使用的是utf-8,解決了url提交數據的編碼問題;所以

tomcat(8之前的版本):使用如上過濾器(post)+get(轉碼)即可解決中文亂碼的問題;

tomcat(8之后的版本):使用如上過濾器(post)即可解決中文亂碼的問題;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM