1、问题概述?
将txt文本中的数据导入到数据库中,执行了如下语句:
LOAD DATA LOCAL INFILE 'c:\\...\\data.txt' INTO TABLE student FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
期望作用:将data.txt中的数据导入到student表中。
但是执行的时候报错:错误代码:1300 Invalid utf8mb4 character String:''
2、解决办法
出现问题的本质就是编码集前后不统一造成的,也就是数据库的编码集和data.txt编码集不同。
【解决办法1-不推荐】
将数据库的编码集调整和data.txt相同的编码集,但是这种一般不可取
【解决办法2-推荐】
使用data.txt生成时使用的编码集解析即可,具体写法如下:
LOAD DATA LOCAL INFILE 'c:\\...\\data.txt' INTO TABLE student CHARACTER SET gbk FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
本案例中使用了常用的编码集gbk,如果出现乱码可尝试其他如:utf8,gb2312等。
总之知道问题出现的原因,剩下的就是多尝试。