從 MySQL 5.1 遷移至 5.5+,用 phpMyAdmin 導入 SQL 文件報錯:
#1115 - Unknown character set: 'utf8mb4'
原因:utf8mb4 是 MySQL 5.5.3 引入的真正 UTF-8(4 字節支援 Emoji),舊版本不識別。
.sql 文件utf8mb4 → utf8utf8mb4_unicode_ci / utf8mb4_general_ci → utf8_general_ci| 特性 | utf8 (utf8mb3) | utf8mb4 |
|---|---|---|
| 最大字節 | 3 字節 | 4 字節 |
| Emoji 支援 | ❌ | ✅ |
| 生僻字支援 | 部分缺失 | 完整 Unicode BMP+補充平面 |
| 索引長度限制 | 767 字節(InnoDB) | 767 字節(5.7-) 3072 字節(5.7+ innodb_large_prefix) |
| 引入版本 | MySQL 4.1 | MySQL 5.5.3 |
CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ciALTER TABLE t CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;SET NAMES utf8mb4 或連接參數 characterEncoding=utf8mb4--default-character-set=utf8mb4 確保導出正確utf8mb4 是現代 MySQL 必選字符集。遷移舊版本導出文件時,文本編輯器全局替換 utf8mb4→utf8 即可快速落地;長期項目請規劃升級至 5.7+/8.0 並全面切換 utf8mb4,擁抱完整 Unicode 世界。