情况描述:Mysql workbench导入csv文件,报错
'gbk' codec can't decode byte 0xb0 in position xxx :illegal multibyte sequence
①打开excel,检查csv文件字符编码
发现错误:excel表格另存为csv文件时,保存类型为CSV(逗号分隔)(.csv),经过检查发现此时的字符编码格式为GB2312,保存时应选择保存类型为CSV UTF-8(逗号分隔)(.csv),通过自带记事本检查发现此时的字符编码格式为UTF-8带BOM。
经过修改以后重新导入数据库,出现同一报错。
②经过网上查询发现,mysql workbench 不支持读取带BOM的UTF-8*格式。所以通过Notepad++软件,将保存好的csv文件的编码格式由带BOM的UTF-8修改成*UTF-8。但是重新用excel打开修改后的文件,发现原本的文字出现乱码。
③经过网上查询发现,通过WPS更改表格为csv文件时,可以不变动文件字符编码格式。
将excel表格另存为csv文件,然后通过Notepad++更改字符编码格式为GB2312。更改完成以后重新用excel表格打开此csv文件,发现内容显示正常。
此时重新导入csv进行数据库,出现新报错,0条记录成功导入。
重新通过Notepad++将字符编码格式修改为utf-8,出现标题的报错。
④检查mysql workbench的数据库和表的字符编码格式,均为utf-8,然后检查表格内容,发现de1和ce1两列是金额,带有特殊符号——人民币符号。通过设置单元格格式为数值,然后重新导入数据库,此时导入成功。
⑤发现导入成功的数据只显示了1000条记录,打开mysql workbench的编辑——首选项——sql编辑器,发现此时设置的最大可读取记录为1000行,修改为最大五万行,重新导入。此时导入成功,数据全部显示,没有出现错误。