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

前後端編碼不一致導致亂碼?統一 UTF-8 或採用十六進制傳輸徹底解決

     編輯:程式設計疑難解答

亂碼成因

  • 後端輸出編碼(如 GBK)與前端頁面 <meta charset="UTF-8"> 不一致。
  • Java/JS 檔案儲存編碼與宣告編碼不符。
  • 資料庫連線未指定 characterEncoding=utf8。

解決方案

  1. 全鏈路統一 UTF-8:
    • 資料庫、表、欄位預設 utf8mb4。
    • JDBC URL 加 ?characterEncoding=utf8&useUnicode=true。
    • Servlet 設定 response.setCharacterEncoding("UTF-8")。
    • JSP/HTML 頁面統一 <meta charset="UTF-8">。
    • IDE 檔案編碼設為 UTF-8。
  2. 兜底方案:後端輸出十六進制:
    // Java 端
    String hex = bytesToHex(str.getBytes("UTF-8"));
    // JS 端
    function hexToStr(hex) { ... }
    十六進制僅含 0-9 A-F,傳輸過程絕不會亂碼。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved