MySQL 数据库确实支持 UTF-8 编码,但需要注意的是,MySQL 5.5.3 及之前的版本默认使用的是 utf8
字符集,它实际上只支持最多三个字节的 UTF-8 编码字符,这意味着它无法存储一些四字节的 Unicode 字符,比如一些罕见的汉字、emoji 表情等。为了支持完整的 Unicode 字符集,应该使用 utf8mb4
字符集。
utf8
的超集,支持完整的 UTF-8 编码,包括四字节的 Unicode 字符。utf8mb4
兼容 utf8
,现有的 utf8
数据可以无缝迁移到 utf8mb4
。如果你的 MySQL 数据库只配置了 utf8
字符集,而尝试插入四字节的 Unicode 字符(如某些 emoji),会出现错误。
utf8
字符集不支持四字节的 UTF-8 编码字符。
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE table_name MODIFY column_name VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
确保客户端连接到 MySQL 服务器时使用 utf8mb4
字符集:
SET NAMES 'utf8mb4';
或者在连接字符串中指定:
mysql -u username -p --default-character-set=utf8mb4
编辑 MySQL 配置文件(通常是 my.cnf
或 my.ini
),添加或修改以下配置:
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
然后重启 MySQL 服务器使配置生效。
通过以上步骤,你可以确保 MySQL 数据库能够正确地存储和处理完整的 Unicode 字符集。
领取专属 10元无门槛券
手把手带您无忧上云