Если вам нужно хранить данные UTF8 в своей базе данных, вам нужна база данных, которая принимает UTF8. Вы можете проверить кодировку своей базы данных в pgAdmin. Просто щелкните базу данных правой кнопкой мыши и выберите «Свойства».
Но эта ошибка, похоже, говорит вам, что в вашем исходном файле есть недопустимые данные UTF8. Это означает, что copy
утилита обнаружила или догадалась, что вы загружаете ей файл UTF8.
Если вы работаете под каким-либо вариантом Unix, вы можете проверить кодировку (более или менее) с помощью file
утилиты.
$ file yourfilename
yourfilename: UTF-8 Unicode English text
(Я думаю, что это будет работать и на Mac в терминале.) Не знаю, как это сделать в Windows.
Если вы используете ту же утилиту для файла, полученного из систем Windows (то есть файла, который не закодирован в UTF8), он, вероятно, покажет что-то вроде этого:
$ file yourfilename
yourfilename: ASCII text, with CRLF line terminators
Если что-то останется странным, вы можете попытаться преобразовать входные данные в известную кодировку, изменить кодировку вашего клиента или и то, и другое. (Мы действительно расширяем границы моих знаний о кодировках.)
Вы можете использовать iconv
утилиту для изменения кодировки входных данных.
iconv -f original_charset -t utf-8 originalfile > newfile
Вы можете изменить кодировку psql (клиентская), следуя инструкциям по поддержке набора символов . На этой странице найдите фразу «Чтобы включить автоматическое преобразование набора символов».