首页 >数据库 >mysql教程 >为什么在 MySQL utf8mb4 数据库中保存表情符号时出现'无效的 utf8 字符串”错误?

为什么在 MySQL utf8mb4 数据库中保存表情符号时出现'无效的 utf8 字符串”错误?

DDD
DDD原创
2024-12-09 12:50:14726浏览

Why Am I Getting

在 MySQL utf8mb4 数据库中保存表情符号:排除无效字符错误

尝试在 MySQL 数据库中存储包含表情符号的名称时,出现类似“尽管配置正确,但仍可能出现“无效的 utf8 字符串”。一个潜在的问题在于字符集和排序规则设置不一致。

要验证配置,请执行以下查询:

SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';

输出应显示相关数据库的以下设置:

+--------------------------+--------------------+
| Variable_name            | Value              |
+--------------------------+--------------------+
| character_set_client     | utf8mb4            |
| character_set_connection | utf8mb4            |
| character_set_database   | utf8mb4            |
| character_set_filesystem | binary             |
| character_set_results    | utf8mb4            |
| character_set_server     | utf8mb4            |
| character_set_system     | utf8               |
| collation_connection     | utf8mb4_unicode_ci |
| collation_database       | utf8mb4_unicode_ci |
| collation_server         | utf8mb4_unicode_ci |
+--------------------------+--------------------+

确保character_set_client、character_set_connection和character_set_results的值全部设置为utf8mb4。如果没有,请相应地调整这些设置。

此外,检查 my.cnf 配置文件是否存在任何不一致的情况。搜索指定字符集和排序规则的设置,并确保它们与数据库配置一致。例如,验证这些行是否存在:

character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

如果这些设置不存在或不正确,请根据需要修改它们并重新启动 MySQL 服务。

最后,考虑执行以下命令查询为当前连接设置字符集和排序规则:

SET NAMES utf8mb4;

这将确保设置所有三个字符集变量

按照以下步骤,您可以解决在使用 utf8mb4 配置的 MySQL 数据库中保存表情符号时出现无效 UTF-8 字符错误的问题。

以上是为什么在 MySQL utf8mb4 数据库中保存表情符号时出现'无效的 utf8 字符串”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn