MySQL 错误 1366: Incorrect string value 解决方法

您遇到的错误 '1366 - Incorrect string value: '阿飞' for column '客户姓名' at row 1' 是由于数据表的字符集与插入的数据字符集不匹配导致的。

原因分析:

MySQL 数据库使用字符集来表示和存储数据。当您插入的数据包含数据库字符集不支持的字符时,就会出现这个错误。例如,您的数据表字符集可能是 latin1,而您插入的 '阿飞' 包含中文汉字,latin1 字符集无法正确处理这些字符。

解决方案:

您可以尝试以下两种解决方法:

  1. 修改数据表的字符集:

    将数据表的字符集修改为 UTF-8 或其他能够包含您插入数据字符的字符集。例如,可以使用以下 SQL 语句将 customerinfo 表的字符集修改为 UTF-8

    ALTER TABLE customerinfo CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    
  2. 修改插入数据的字符集:

    将插入数据的字符集修改为与数据表一致的字符集。例如,如果您的数据表字符集是 latin1,您可以将插入数据的字符集也修改为 latin1

    或者

    将插入数据中的特殊字符转换为对应的 Unicode 编码,例如将 '阿飞' 转换为 '\u963f\u98de'。

示例代码:

INSERT INTO customerinfo(`客户编号`,`客户姓名`,`客户性别`,`身份证号码`,`客户联系电话`,`客户类型`,`备注信息`) VALUES('T.adda','\u963f\u98de','男','25524555544','15844582','你们没打','无情');

提示:

  • 建议您在创建数据表时就将其字符集设置为 UTF-8,这样可以避免出现此类错误。
  • 如果您无法确定数据表的字符集,可以使用 SHOW CREATE TABLE customerinfo 命令查看。
  • 如果您需要插入大量的包含特殊字符的数据,建议您使用 Unicode 编码进行转换,这样可以确保数据在不同字符集环境下都能正常显示。
MySQL 错误 1366: Incorrect string value 解决方法

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

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