我正在尝试将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右引号。
关于这个问题的解决方案的任何想法?
任何帮助将不胜感激。提前谢谢你。
答案 0 :(得分:0)
COPY
command有一个ENCODING
选项:
ENCODING
指定文件在encoding_name
中编码。如果省略此选项,则使用当前客户端编码。
因此,如果您的文件确实是在Windows-1252中编码的,那么您可以说:
copy mytable from 'C:/candidate_analyze.csv' delimiter ',' encoding 'windows-1252' csv;