2013-09-27 2 views
0

§로 구분 된 파일을 복사하는 동안 문제가 발생했습니다. 데이터베이스 버전은 9.1postgresql 복사 명령 구분 기호 영숫자가 아님

파일의 내용은 다음과 같습니다이다

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

1§4§5

복사 명령
a§b§c

오류 : "UTF8"인코딩의 바이트 시퀀스가 ​​잘못되었습니다. 0xa7

내 이해에 따라 § UTF-8 문자이며 데이터베이스의 인코딩은 UTF-8로 설정됩니다. 그렇다면 왜 §로 구분 된 파일을 복사하지 못합니까?

답변

0

0xa7은 iso-latin-1에서 §의 코드이므로 COPY로 전달 된 데이터 스트림은 UTF-8이 아닌 iso-latin-1로 인코딩됩니다.

해결 방법으로 내용을 가져 오는 SQL 세션에서 client_encoding을 LATIN1로 설정하거나 가져 오기 전에 UTF-8로 변환 할 수 있습니다.