MySQL 错误 1366: Incorrect string value 解决方法
MySQL 错误 1366: Incorrect string value 解决方法
您遇到的错误 '1366 - Incorrect string value: 'é¿é£' for column '客户姓名' at row 1' 是由于数据表的字符集与插入的数据字符集不匹配导致的。
原因分析:
MySQL 数据库使用字符集来表示和存储数据。当您插入的数据包含数据库字符集不支持的字符时,就会出现这个错误。例如,您的数据表字符集可能是 latin1,而您插入的 '阿飞' 包含中文汉字,latin1 字符集无法正确处理这些字符。
解决方案:
您可以尝试以下两种解决方法:
-
修改数据表的字符集:
将数据表的字符集修改为
UTF-8或其他能够包含您插入数据字符的字符集。例如,可以使用以下 SQL 语句将customerinfo表的字符集修改为UTF-8:ALTER TABLE customerinfo CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -
修改插入数据的字符集:
将插入数据的字符集修改为与数据表一致的字符集。例如,如果您的数据表字符集是
latin1,您可以将插入数据的字符集也修改为latin1。或者
将插入数据中的特殊字符转换为对应的 Unicode 编码,例如将 '阿飞' 转换为 '\u963f\u98de'。
示例代码:
INSERT INTO customerinfo(`客户编号`,`客户姓名`,`客户性别`,`身份证号码`,`客户联系电话`,`客户类型`,`备注信息`) VALUES('T.adda','\u963f\u98de','男','25524555544','15844582','你们没打','无情');
提示:
- 建议您在创建数据表时就将其字符集设置为
UTF-8,这样可以避免出现此类错误。 - 如果您无法确定数据表的字符集,可以使用
SHOW CREATE TABLE customerinfo命令查看。 - 如果您需要插入大量的包含特殊字符的数据,建议您使用 Unicode 编码进行转换,这样可以确保数据在不同字符集环境下都能正常显示。
原文地址: https://www.cveoy.top/t/topic/nP9Y 著作权归作者所有。请勿转载和采集!