当使用utf8mb4字符集存储文本时,如果输入的文本包含了无法被该字符集正确编码的字符,就会触发报错Error Code: 1366. Incorrect string value。这通常是因为MySQL默认的字符集是utf8,而不是utf8mb4。\n\nutf8字符集最多只能表示3个字节的Unicode字符,而utf8mb4字符集可以表示4个字节的Unicode字符。因此,如果输入的文本包含了4个字节的Unicode字符,而数据库使用的是utf8字符集,就会导致编码错误。\n\n要解决这个问题,可以将数据库的字符集设置为utf8mb4。可以通过以下步骤来实现:\n\n1. 修改MySQL配置文件(my.cnf或my.ini),将默认字符集设置为utf8mb4。可以在[mysqld]部分添加以下行:\n [mysqld]\n character-set-server = utf8mb4\n collation-server = utf8mb4_unicode_ci\n\n2. 重启MySQL服务器,使配置生效。\n\n3. 修改数据库、表和列的字符集为utf8mb4。可以使用以下语句修改表的字符集:\n ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\n\n4. 如果已有数据,还需要将现有数据的字符集转换为utf8mb4。可以使用以下语句将列的字符集转换为utf8mb4:\n ALTER TABLE table_name MODIFY column_name text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\n\n通过以上步骤,就可以避免触发"Error Code: 1366. Incorrect string value"错误,并且能够正确存储和处理utf8mb4字符集的文本数据。

MySQL TEXT UTF8MB4 错误:Error Code: 1366. Incorrect string value 解决方案

原文地址: https://www.cveoy.top/t/topic/p922 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录