Я публикую этот ответ, потому что ни один из других ответов, приведенных здесь, на самом деле не работал для меня. Я не мог использовать COPY
из Postgres, потому что у меня не было правильных разрешений. Поэтому я выбрал «Экспорт строк сетки» и сохранил вывод как UTF-8.
Версия psql
, предоставленная @Brian, также не сработала для меня по другой причине. Причина, по которой это не сработало, заключается в том, что, очевидно, командная строка Windows (я использовал Windows) сама вмешивалась в кодировку. Я продолжал получать эту ошибку:
ОШИБКА: символ с байтовой последовательностью 0x81 в кодировке "WIN1252" не имеет эквивалента в кодировке "UTF8"
Решение, которое я решил использовать, заключалось в написании короткого сценария JDBC (Java), который считывал файл CSV и выполнял операторы вставки непосредственно в мою таблицу Postgres. Это работало, но командная строка также работала бы, если бы она не изменяла кодировку.