2013-09-27 56 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。