excel2003中生成的csv文件如图
通过HeudiSQL导入数据库时却出现错误提示:
百思不得其解,经过反复测试,发现问题出在上图csv文件product_name(F列)字段的“第一个汉字”上。测试中发现,当该列第一个汉字是透、片、瓶、支时不过,当测试到贴、盒、粒、克、袋、付、宝、酿时就过,很是奇葩。
当第一个汉字是“宝”时:
导入数据库后如图:
解决方法就是通过测试,找到一个可以过的汉字,作为此列的第一个汉字。如产品名称前加一个“宝”字,由“透绿春”变成“宝透绿春”,名称稍微变一下,随后再在数据库中将名字改过来(蹩脚的方法,好在只改一个字)。
原因猜想如下:
1、excel20003生成的csv文件对汉字使用的编码可能有多种情况。
2、csv文件某列的第一个字的编码方式(如ANSI)决定了本列所有汉字的编码方式。
3、编码方式多时,HeidiSQL无法导入;编码方式单一可以导入。
问题虽然解决,但其中的原理却不甚清楚,心里惴惴不安,还请路过的大神点拨!