首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

徹底解決 MySQL 中文亂碼:Server/Table/Connection 三層字符集配置實戰

     編輯:MySQL 資料庫相關知識

亂碼根因三大類

  • Server 字符集配置問題(如仍停留在 latin1)
  • Table 字符集/排序規則配置問題
  • Client 連線字符集配置問題(PHP 等應用層)

必勝解決法:三層配置齊到位

1. 找到並修正 my.ini/my.cnf

MySQL 啟動讀取預設配置檔,搜尋路徑:

  • Windows: C:\Windows\my.ini 或 C:\WINNT\my.ini
  • 根目錄: C:\my.cnf

注意:不同位置副檔名不同(.ini vs .cnf)。

2. 關鍵配置內容


[mysqld]
default-character-set=latin1  # 建議 latin1,utf8 可能導致舊軟體不兼容

[client]
default-character-set=utf8
init_connect='SET NAMES utf8'

關鍵點: [mysqld] 建議設 latin1 兼容舊應用;[client] 設 utf8 但僅官方工具(mysql.exe、mysqladmin.exe、MySQL Control Center 等)會讀取此設定。

3. 應用層強制指定連線字符集(最關鍵)

大多數工程師自寫 PHP/JSP 連線,不會讀取 client 區段配置。必須在建立連線後立即執行:



若使用連線池,每次取新連線後必須立即執行 SET NAMES 'utf8'。

驗證標準

輸入「不道可否囉」(含生僻字),正確寫入讀出無「口」字替換即通過。已驗證中文繁/簡/日文/韓文、Flex2-AMFPHP-PHP-MySQL 全鏈路無亂碼。

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