技术分享 2022-11-21

用户名称中包含表情符,存入数据库报错

作者:耕阁技术团队 8939 阅读

问题描述

当用户名称中包含表情符号(Emoji)时,存入MySQL数据库会报错。

原因分析

MySQL默认使用utf8编码,不支持4字节的Unicode字符(如表情符号)。需要使用utf8mb4编码。

解决方案

修改数据库、数据表和字段的字符集为utf8mb4:

ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;