在 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中文网其他相关文章!