phpMyAdmin 早期版本預設以 latin1 處理連線編碼,導致 UTF-8 與 GB2312(Big5)資料無法同時正確顯示。本文提供修改 libraries/select_lang.lib.php 的實測方案,實現雙編碼共存。
檔案:libraries/select_lang.lib.php
// 原始碼
'utf-8' => 'utf8',
// 修改為
'utf-8' => 'latin1',
原理:強制 phpMyAdmin 以 latin1 模式與 MySQL 溝通,避免雙重編碼轉換導致資料損壞。實際資料仍以 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 選項,登入頁面即可見到兩個中文選項:
/**/ 註解掉,僅保留上述兩項,加快登入頁載入。修改 phpMyAdmin 核心檔案屬權宜之計。長期專案建議:
utf8mb4 編碼SET NAMES utf8mb4透過調整語系對照表,舊版 phpMyAdmin 即可在 UTF-8 與 GB2312 環境共存。若專案允許,升級至新版並統一編碼為 utf8mb4 才是一勞永逸之道。