首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Tomcat 中文參數亂碼終極解決方案:URIEncoding 配置詳解

     編輯:Java 綜合教學

問題現場:GET 請求中文參數亂碼

現象:URL 參數包含中文時,Servlet 接收顯示亂碼。
亂碼現象

根本原因

  • request.setCharacterEncoding("UTF-8") 僅對 POST 有效
  • GET 請求參數在 URL 中,由 Tomcat Connector 解碼,默認 ISO-8859-1

解決方案:修改 server.xml

  1. 定位文件:$CATALINA_HOME/conf/server.xml
  2. 找到 HTTP Connector 配置(默認 8080 端口)
  3. 添加 URIEncoding="UTF-8" 屬性

修改前

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

修改前配置

修改後

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

修改後配置

驗證與補充

  1. 重啟 Tomcat
  2. 再次測試,中文參數正常解析
    修復後效果

最佳實踐總結

請求方式編碼設置位置生效條件
POSTJava 代碼:request.setCharacterEncoding("UTF-8")在讀取參數前調用
GETTomcat 配置:<Connector URIEncoding="UTF-8">重啟 Tomcat 生效

Tomcat 8+ 默認已使用 UTF-8,但顯式配置可避免版本差異導致的問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved