Mówisz Postgresowi, że źródło będzie zakodowane jako LATIN1:
Ale albo tak nie jest, albo plik jest uszkodzony. W przeciwnym razie nie zobaczylibyśmy komunikatu o błędzie. Jakie jest prawdziwe kodowanie '$FilePath\file.txt' ?
Bieżące client_encoding nie ma to znaczenia, ponieważ cytując instrukcję na COPY
:
(\copy jest tylko opakowaniem dla SQL COPY w psql.)
I twoje server_encoding jest również w dużej mierze nieistotne – o ile Postgres może używać wbudowana konwersja
a kodowanie docelowe zawiera wszystkie znaki kodowania źródłowego - tak jest w przypadku LATIN1 -> UTF8:iso_8859_1_to_utf8 .
Pozostałym źródłem błędu jest więc plik, który prawie na pewno nie jest prawidłowym LATIN1.