最近使用脚本文件向mysql插入数据(含中文)时,出现1366错误:
ERROR 1366 (HY000): Incorrect string value: 'xE8x8BxB1xE5xAFxB8...' for column ... at row ...
出错原因是客户端的字符集与数据库里的字符集不匹配。
网上查到的方法几乎都是更改相应表的字符集:
mysql> ALTER TABLE ... CONVERT TO CHARACTER SET gbk COLLATE gbk_chinese_ci;
其实还有一种简便解决方法,即直接设置客户端的字符集:
mysql> set character_set_client=gbk
然后再执行脚本即正确完成。
PS:有同事提供了另一种方法,即将脚本文件以gbk编码格式保存再执行,测试也有效。