phpMyAdmin 介面顯示中文亂碼、匯入匯出 SQL 檔亂碼、資料庫實際儲存編碼不一致,通常源於三層編碼不對齊:
1. phpMyAdmin 介面語系對應編碼映射錯誤
2. PHP 連線未指定字元集
3. HTML 頁面未宣告 charset
phpMyAdmin/libraries/select_lang.lib.php'zh-gb2312' 改為 'zh-gb2312-utf-8'$mysql_charset_map 陣列:'gb2312' => 'utf-8' 改為 'gb2312' => 'latin1',
'utf-8' => 'utf-8' 改為 'utf-8' => 'latin1',service httpd restart 或重啟 VertrigoServ/XAMPP 控制台。原理:強制 phpMyAdmin 以 latin1 當作傳輸編碼,配合 MySQL 端 SET NAMES 由伺服器端轉碼,繞過 phpMyAdmin 內部不完整的 UTF-8 支援。
<?php
$db = mysql_connect('localhost', 'user', 'password');
mysql_select_db('message', $db);
// 選擇資料庫後立即執行
mysql_query("SET NAMES 'GBK'", $db); // 或 utf8,視網頁編碼而定
?>
mysqli 版:
$mysqli = new mysqli('localhost','user','password','message');
$mysqli->set_charset('GBK');
<?php
// 檔案最頂端,任何輸出前
header("Content-Type: text/html; charset=utf-8");
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
...
SET NAMES 'GBK',頁面 charset=GBK,資料表欄位保持 latin1 儲存(視為二進位),由應用層負責轉碼。原文標題:phpadmin與MySQL中文亂碼問題解決方法
連結:https://www.cnblogs.com/sishierfei/archive/2009/11/25/1610519.html
