MySQL 導入亂碼本質是字符集不一致:導出、文件編碼、導入、數據庫/表定義、連接字符集任一環節不匹配即會導致亂碼。
CREATE DATABASE `shegongku` DEFAULT CHARACTER SET utf8;
CREATE TABLE `members` (
`uid` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',
`username` VARCHAR(15) NOT NULL DEFAULT '',
`password` VARCHAR(40) NOT NULL DEFAULT '',
`salt` VARCHAR(16) DEFAULT NULL,
`email` VARCHAR(60) NOT NULL DEFAULT ''
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
建議統一使用 utf8mb4(支援完整 Unicode,含 Emoji),若兼容舊版本可用 utf8。
SET NAMES utf8; 並保存在目標數據庫中執行 SOURCE utf8.sql; 完成導入。
若導入後數據正常但終端查詢顯示亂碼,屬於終端顯示編碼問題,非數據問題。執行 SET NAMES gbk; 即可正常顯示中文(Windows CMD 默認 GBK)。
utf8mb4 避免 4 字節字符截斷--default-character-set=utf8mb4 --hex-blob