从csv文件复制数据到postgres时窗口右单引号错误

时间:2013-12-19 17:12:23

标签: postgresql encoding copy command

我正在尝试将csv文件导入postgres db(版本9.3,数据库编码设置为UTF8)。使用下面的命令,我得到错误(也在下面)

copy mytable from 'C:/candidate_analyze.csv' delimiter ',' csv;

ERROR:  invalid byte sequence for encoding "UTF8": 0x96

经过研究,我发现这个错误与Windows-1252或右单引号的Windows版本有关,而不是撇号。

csv文件中有一个文本字段(称为“orig_text”),其中包含正确的单引号。

这个复制功能是自动化的,所以我不能去那里并且每次都进行搜索并替换windows右引号。

关于这个问题的解决方案的任何想法?

任何帮助将不胜感激。提前谢谢你。

1 个答案:

答案 0 :(得分:0)

COPY command有一个ENCODING选项:

  

ENCODING
  指定文件在encoding_name中编码。如果省略此选项,则使用当前客户端编码。

因此,如果您的文件确实是在Windows-1252中编码的,那么您可以说:

copy mytable from 'C:/candidate_analyze.csv' delimiter ',' encoding 'windows-1252' csv;