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

MySQL 插入與前端顯示中文亂碼三行代碼徹底解決

     編輯:MySQL 綜合教學

MySQL 插入與前端顯示中文亂碼三行代碼徹底解決

Java/JSP 連接 MySQL 時,常遇到「資料庫存入正常但前端亂碼」或「插入即亂碼」問題。根因在於連線字符集未統一。在 MySQL 客戶端執行以下三條指令,強制當前會話三大字符集統一為 UTF-8,即可徹底解決。

解決方案

SET character_set_client='utf8';
SET character_set_connection='utf8';
SET character_set_results='utf8';

原理解析

變量作用亂碼成因
character_set_client客戶端發送 SQL 的編碼JSP 以 UTF-8 發送,MySQL 若以 latin1 解析 → 入庫亂碼
character_set_connection連線層轉換目標編碼Server 將 client 編碼轉為 connection 編碼再處理
character_set_results結果集返回給客戶端的編碼資料庫存 UTF-8,返回 latin1 → 前端亂碼

永久生效配置

修改 my.ini(Windows)或 my.cnf(Linux)[mysqld] 區塊:

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

重啟 MySQL 服務生效。

JDBC 連線字串最佳實踐

jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
  • useUnicode=true:啟用 Unicode 支援。
  • characterEncoding=utf8:指定連線編碼,覆蓋 Server 端設定。
  • serverTimezone:避免時區警告(MySQL 5.7+)。

三行 Session 指令救急,配置檔 + JDBC 參數治本,中文亂碼不再是難題。

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