Если вам нужно хранить данные 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 (клиента), следуя инструкциям Поддержка набора символов .На этой странице найдите фразу «Включение автоматического преобразования набора символов».