CSV导入后中文乱码或编号变样,应该先检查哪些条件
CSV保存的是文本字段,打开方式、字符编码和列类型都会影响显示。先保留原文件,再用小样本验证导入规则。
先保护原始文本文件
遇到乱码或编号变化时,不要直接在已经异常显示的文件里覆盖保存。保留原始CSV,再在副本上检查。CSV通常保存以分隔符组织的文本记录,不像电子表格工作簿那样同时保存完整的单元格格式和类型。文件后缀相同,并不保证所有导出工具采用了相同的字符编码、分隔符或引号规则。先记录文件来源、导出方式和出现问题的样本行,可以减少在不同软件之间反复转换造成的信息损失。
中文显示问题先看编码
文本文件需要按正确的字符编码解码,使用不匹配的编码可能让中文变成异常字符。不要只因为文件名是CSV就认定它一定使用某种编码。若软件提供导入预览,可以选择与来源一致的编码并观察样本;来源不明确时,应向导出方确认,而不是反复转码直到某几行看起来正常。已经被错误解码并覆盖写回的数据,未必能够仅靠再改一次编码恢复,所以原始副本非常重要。
编号应按含义而不是外观设定类型
订单号、邮编和带前导零的编号,即使只含数字,也可能应该作为文本保存。导入工具自动判断类型时,可能把前导零去掉,或者把很长的编号显示为科学计数形式。应在导入时为这些列选择适合业务含义的类型,再核对完整值,而不只看列宽中的显示结果。对日期字段同样要注意地区格式和月日歧义;不要把自动识别得到的结果直接当成来源已经确认的事实。
同时检查分隔符和不可信字段
如果一整行挤在一个单元格里,或字段被错切成多列,应检查分隔符、引号和字段内换行的处理方式。不能简单地把文件里的每个逗号都当成分列位置,因为带引号的字段本身也可能包含逗号。来自不可信来源的CSV还可能包含会被表格软件解释为公式的内容,应使用合适的纯文本导入和安全处理方式,而不是无条件启用或执行。验证几行特殊样本之后,再按相同规则处理完整文件。