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

本地正常伺服器亂碼:環境差異導致 URL 編解碼不一致的排查清單

     編輯:程式設計綜合問答

現象

前端 encodeURIComponent → 後端 new String(bytes, "UTF-8") 本地正常,部署到伺服器後亂碼。

環境差異檢查清單

層面本地伺服器檢查指令
JVM 檔案編碼UTF-8可能為 GBK/ISO-8859-1java -Dfile.encoding 或啟動腳本
Tomcat URI 編碼預設 ISO-8859-1需在 server.xml 設定 URIEncoding="UTF-8"Connector 節點
資料庫連線編碼JDBC URL 含 characterEncoding同左,但實例參數可能不同SHOW VARIABLES LIKE 'character_set%'
SVN 檔案編碼UTF-8合併時可能轉為 ANSIfile encoding 檢查 .java 檔
前端頁面編碼同左,但 CDN/Proxy 可能改變瀏覽器 Network 標籤查看 Content-Type

統一修正步驟

  1. 啟動腳本加入 -Dfile.encoding=UTF-8。
  2. Tomcat server.xml 所有 <Connector> 加 URIEncoding="UTF-8" useBodyEncodingForURI="true"。
  3. JDBC URL 確認 useUnicode=true&characterEncoding=UTF-8。
  4. 資料庫建表指定 CHARSET=utf8mb4。
  5. 前端頁面、JS、CSS 全部儲存為 UTF-8 無 BOM。
  6. SVN 客戶端設定 svn:mime-type = text/plain; charset=UTF-8。

快速驗證

// 在 Servlet 中印出
System.out.println("file.encoding=" + System.getProperty("file.encoding"));
System.out.println("request encoding=" + request.getCharacterEncoding());

全鏈路 UTF-8 一致,亂碼即可徹底消除。

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