今天把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;
以上就是此类情况的大部分解决方法了,大家快去试试吧。