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

JSP 頁面中文亂碼解決:Tomcat URIEncoding 統一設為 UTF-8

     編輯:程式設計綜合問答

JSP 頁面傳遞中文參數(如 human=${logUser.name})到後台時出現亂碼(Firebug 顯示 %E8%94%BA%E6%BA%90 為 URL 編碼後的 UTF-8 位元組),但後台未正確解碼。根本原因多為 **Tomcat 連接器未指定 URI 編碼**,導致預設用 ISO-8859-1 解碼 URL 參數。

解決方案:修改 server.xml 設定 URIEncoding

找到 Tomcat 安裝目錄下 conf/server.xml,在 <Connector> 元素加入 URIEncoding="UTF-8":

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

重啟 Tomcat 即可。此設定讓 Tomcat 以 UTF-8 解碼 URL 路徑與查詢字串參數,配合 JSP 頁面 pageEncoding="UTF-8"、資料庫連線 characterEncoding=utf8,即可全鏈路解決中文亂碼。

補充檢查清單

  • JSP 頁面頂部:<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
  • HTML Meta:<meta charset="UTF-8">
  • 資料庫 JDBC URL:?useUnicode=true&characterEncoding=utf8
  • Filter 過濾器(如 Spring CharacterEncodingFilter)設定 forceEncoding=true

統一全鏈路 UTF-8,是徹底根治 Java Web 中文亂碼的唯一正解。

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