解决MySQL表中插入中文字符报错Incorrect string value: ‘\xE4\xBE\xB5\xE5\xAE\xB3...‘ for column ‘name‘ at row 1 详细

今天把Excel文件的数据导入MySQL的时候,遇到个郁闷的简单问题,

[2023-08-04 10:22:58.566] [IMP] Import table [table_name]
[2023-08-04 10:22:58.647] [ERR] 1366 - Incorrect string value: '\xE4\xBE\xB5\xE5\xAE\xB3...' for column 'name' at row 1

 导入的数据有中文,MySQL格式不对,报错了。

检查了一下表格式,utf8mb4,没有啥问题

 1.转换Excel文件为UTF-8格式

 

 这个操作对我没啥用,还是错

2.字段单独的编码格式

后面找到了这个问题的出处,字段的单独编码,每个字段都有单独的字符集和排序规则,中文就需要改成UTF-8,所以改完问题就解决了,没有转换为UTF-8格式的Excel文件也可以正常导入了。

 3.一些可能用到的MySQL命令

有的小伙伴喜欢用命令的方式,而不喜欢可视化工具,那么下面列举一些排查这个问题的一些命令

检查字符集设置: 确保你的 MySQL 数据库的字符集与你的 Excel 表格中的字符集一致。你可以通过以下步骤来设置 MySQL 数据库的字符集为 UTF-8:

  • 在 MySQL 数据库中,使用以下命令检查当前的字符集设置:
(查看各类的字符集)
SHOW VARIABLES LIKE 'character_set_%';
SHOW VARIABLES LIKE 'char%';

(直接查看表结构)
show create table my_table;
  • 如果字符集不是 UTF-8,你可以使用以下命令来修改字符集设置:
  • (数据库的字符集修改)
    ALTER DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
    
    (表的字符集修改)
    ALTER TABLE tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
    
    (字段的字符集修改)
    alter table my_table modify column_name varchar(20) character set utf8mb4;
    

    以上就是此类情况的大部分解决方法了,大家快去试试吧。

猜你喜欢

转载自blog.csdn.net/weixin_45740811/article/details/132100170