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

徹底解決 phpMyAdmin 中文 UTF-8 亂碼問題:編碼對照表修改實戰

     編輯:MySQL 資料庫相關知識

問題背景

phpMyAdmin 早期版本預設以 latin1 處理連線編碼,導致 UTF-8 與 GB2312(Big5)資料無法同時正確顯示。本文提供修改 libraries/select_lang.lib.php 的實測方案,實現雙編碼共存。

核心修改:兩處關鍵對照表

1. 修正 MySQL 連線編碼對照

檔案:libraries/select_lang.lib.php

// 原始碼
'utf-8' => 'utf8',

// 修改為
'utf-8' => 'latin1',

原理:強制 phpMyAdmin 以 latin1 模式與 MySQL 溝通,避免雙重編碼轉換導致資料損壞。實際資料仍以 UTF-8 儲存,僅傳輸層面轉換。

2. 新增支援 UTF-8 的中文語系選項

// 原始碼
'zh-gb2312' => array('zh|chinese simplified', 'chinese_simplified-gb2312', 'zh'),

// 修改為(在鍵名後附加 -utf-8)
'zh-gb2312-utf-8' => array('zh|chinese simplified', 'chinese_simplified-gb2312', 'zh'),

同時保留原有 zh-utf-8 選項,登入頁面即可見到兩個中文選項:

  • zh-gb2312-utf-8:適合瀏覽 GB2312 編碼資料
  • zh-utf-8:適合瀏覽 UTF-8 編碼資料

使用流程

  1. 登入時選 zh-gb2312-utf-8 → GB2312 資料正常,UTF-8 資料亂碼
  2. 需查看 UTF-8 資料時 → 首頁 Language 下拉選單切換至 zh-utf-8

優化建議

  • 精簡語系清單:將不需的語系以 /**/ 註解掉,僅保留上述兩項,加快登入頁載入。
  • 避開 2.8.0-rc1 版本:該版本首頁語系選單無法指定編碼,建議使用 2.7.x 穩定版或 3.x 以上新版。

根本解決方案(推薦)

修改 phpMyAdmin 核心檔案屬權宜之計。長期專案建議:

  1. 資料庫、表、欄位統一使用 utf8mb4 編碼
  2. 連線設定 SET NAMES utf8mb4
  3. phpMyAdmin 升級至 4.x/5.x 版,原生完整支援 UTF-8,無需手動修補

結語

透過調整語系對照表,舊版 phpMyAdmin 即可在 UTF-8 與 GB2312 環境共存。若專案允許,升級至新版並統一編碼為 utf8mb4 才是一勞永逸之道。

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