Ако трябва да съхранявате 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 (клиентското) кодиране, като следвате инструкциите в Поддръжка на набор от символи. На тази страница потърсете фразата „За активиране на автоматично преобразуване на набор от знаци“.