字节笔记本字节笔记本

解决 Error 1366 (HY000): Incorrect string value: '\xF0\x9F\x91\x80 \xE8...' for column 'md' at row 1

2023-04-20

错误源于尝试插入无效字符到MySQL数据库,解决方案包括更改字符集、修改表的字符集和排序规则,以及调整客户端字符集,同时建议在更改前备份数据库。

这个错误是因为您尝试将包含无效或不受支持字符的字符串插入到MySQL数据库的列中。 解决此错误的方法取决于您的MySQL服务器和客户端的配置和版本。

以下是几个可能的解决方案:

  1. 更改MySQL字符集:可以通过在MySQL的my.cnf配置文件中添加以下行来更改默认字符集:

[mysqld]
character-set-server = utf8mb4

然后,重新启动MySQL服务,这样您就可以使用utf8mb4字符集,它支持各种Unicode字符。

  1. 修改表的字符集和排序规则:可以使用ALTER TABLE语句修改表的字符集和排序规则。例如:

ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

  1. 修改客户端字符集:如果您的客户端无法处理utf8mb4字符集,那么您可以将其配置为使用该字符集。例如,在PHP中,您可以通过以下方式更改字符集:

mysqli_set_charset($connection, 'utf8mb4');

请注意,在应用任何更改之前,请备份您的数据库以防万一。