Simon.Sun 发表于 2022-11-3 11:12:02

看完必恍然大悟的活字格内幕:六十三、服务端命令导入CSV编码问题

本帖最后由 Simon.Sun 于 2022-11-15 10:45 编辑

大家有时候会用 服务端导入导出 CSV 来同 CSV 文件导入一些数据,这里举个例子来说明下使用这个命令时需要注意的一个事项:首先创建一个表格,这个表格很简单,只包含了文本和整数两列。
然后创建服务端命令,如下所示:看起来好像没问题,但是测试的时候报下面的错误:根据错误的提示说,CSV 文件中未找到标题名称为文本的列,我们的 CSV 文件时下面这样的,其中是有文本者一列的,如下:那这是什么原因呢?相信聪明的格友们已经想到了,可能是编码格式的问题。从上面图中可以看出,导入的文件是 ANSI 编码,而活字格默认接收的文件格式为 UTF-8,这个可以从导入导出 CSV 命令中的更多设置可以看出,如下:当编码格式不匹配时,活字格服务端是解析不出列头的,所以就抛出了上述找不到文本列的异常。解决这个问题的办法就很明确了,一种是将导入文件修改成 UTF-8 格式,这个使用 Windows 自带的文本编辑器的另存为功能就可以做到;
另外一种在服务端命令里设置编码格式为 ANSI。但是设置的时候发现,支持使设置的格式并没有 ANSI,ANSI 究竟是什么编码格式呢?实际上 ANSI 并不是一种具体的编码格式,在不同语言的 Windows 系统中表示不同的编码。在简体中文 Windows 操作系统中,ANSI 编码代表 GB2312 编码;在繁体中文 Windows 操作系统中,ANSI 编码代表 Big5;在日文Windows操作系统中,ANSI 编码代表 Shift_JIS 编码。
我这里使用的是简体中文操作系统,因此这里我将设置中的编码选择 GB2312,就可以将 CSV 文件成功导入了。

总结下就是大家在使用服务端命令导入 CSV 文件时如果遇到了不存在 XX 列,或者索引不对类似的错误提示信息,除了要检查 CSV 文件是不是存在对应列的同时,也要看下编码是否一致。



页: [1]
查看完整版本: 看完必恍然大悟的活字格内幕:六十三、服务端命令导入CSV编码问题