2013-09-27 58 views
0

我在复制由§定界的文件时遇到问题。该数据库的版本是9.1postgresql复制命令分隔符非字母数字字符

文件内容是如下:

a§b§c
1§4§5

复制命令:

copy test.test_ingestion (a,b,c) from 'b.csv' CSV HEADER DELIMITER as E'§'; 

错误:用于编码“UTF8”的字节序列无效:0xa7

根据我的理解,§是一个UTF-8字符,数据库的编码设置为UTF-8。 那么为什么它无法复制由§分隔的文件。

回答

0

0xa7是iso-latin-1中的§的代码,很明显传递给COPY的数据流是以iso-latin-1而不是UTF-8编码的。

作为解决方案,您可以在导入内容的SQL会话中将client_encoding设置为LATIN1,或者在导入之前将其转换为UTF-8。