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

MySQL 中文亂碼問題完整解決方案:從庫建立到 Java 連接配置

     編輯:MySQL 綜合教學

核心原則

「庫、表、連接、應用」四層編碼必須保持一致。以 GB2312 為例(現代項目強烈建議統一使用 utf8mb4),完整配置鏈路如下:

1. 建庫時指定默認字符集

CREATE DATABASE db_name DEFAULT CHARACTER SET gb2312;

2. Java JDBC 連接串顯式聲明編碼

String url = "jdbc:mysql://" + host + "/" + dbName
    + "?user=" + user
    + "&password=" + password
    + "&useUnicode=true&characterEncoding=gb2312";

useUnicode=true 告知驅動程式啟用字符集轉換;characterEncoding 指定目標編碼,驅動會自動將 Java 內部 Unicode 轉為 GB2312 傳給數據庫。

3. Servlet 輸出響應編碼

response.setContentType("text/html");
response.setCharacterEncoding("GB2312");

確保瀏覽器正確解碼頁面輸出,避免「存進去正常、取出來亂碼」的現象。

進階建議

  • 新項目請直接採用 utf8mb4,連接串改為 characterEncoding=utf-8,並設置 connectionCollation=utf8mb4_unicode_ci。
  • 檢查 my.cnf / my.ini 中 [client]、[mysql]、[mysqld] 區塊的 default-character-set 是否一致。
  • 使用 SHOW VARIABLES LIKE 'character%'; 驗證運行時實際生效的字符集設置。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved