解决ERROR 1300 (HY000): Invalid utf8 character string: ' '问题

首先声明,此贴为转发http://www.zhimengzhe.com/linux/187669.html的帖子。
其次说明,我用的是linux操作系统mysql 5.7,在导入数据的时候产生了如下错误
ERROR 1300 (HY000): Invalid utf8 character string: ’ ’

在论坛上搜寻了n久,差不多都是将编码修改为utf8的思路,但是没有用,也试过将csv文件改为txt文件,也没有用,最后找到这个帖子,按照步骤走,发现最后导表成功。
具体操作过程:

在load csv 进mysql的时候,报这个错,苦恼了很长时间,网上搜索不到答案。

mysql> load data infile ‘/home/hdh/8_sr/8_45.csv’ into table xizang.fp45 fields terminated by ‘,’ escaped by ‘"’ lines terminated by ‘\r\n’;

解决方案:

1.查看字符集,Linux, 数据库,表

mysql> show variables like ‘character%’;±-------------------------±----------------------------+| Variable_name | Value |±-------------------------±----------------------------+| character_set_client | utf8 || character_set_connection | utf8 || character_set_database | utf8 || character_set_filesystem | binary || character_set_results | utf8 || character_set_server | utf8 || character_set_system | utf8 || character_sets_dir | /home/mysql/share/charsets/ |±-------------------------±----------------------------+8 rows in set (0.01 sec)

都是utf8,没有问题,

2.只能对这个文件进行特殊字符的清理了,一般遇到这个都是因为字符中间多了“\” 转义字符。

一般遇到特殊字符的时候会提示多少行,什么字符导致的出错,但是这个“\”,不会有这么详细的提示。

对这个文件 sed -i ‘s/"//g’ filename #删除文件中的"

sed -i ‘s/\//g’ filename #删除文件中的\

重新load ok

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值