Якщо вам потрібно зберігати дані UTF8 у вашій базі даних, вам потрібна база даних, яка приймає UTF8. Ви можете перевірити кодування вашої бази даних в pgAdmin. Просто клацніть правою кнопкою миші базу даних і виберіть "Властивості".
Але ця помилка, схоже, говорить про те, що у вихідному файлі є деякі недійсні дані UTF8. Це означає, що copy
утиліта виявила або здогадалася, що ви подаєте їй файл UTF8.
Якщо ви працюєте в якомусь варіанті Unix, ви можете перевірити кодування (більш-менш) за допомогою file
утиліти.
$ file yourfilename
yourfilename: UTF-8 Unicode English text
(Я думаю, що це буде працювати і на Macs у терміналі.) Не знаю, як це зробити під Windows.
Якщо ви використовуєте ту саму утиліту для файлу, який прийшов із систем Windows (тобто файл, який не закодований в UTF8), він, ймовірно, покаже щось подібне:
$ file yourfilename
yourfilename: ASCII text, with CRLF line terminators
Якщо все залишається дивним, ви можете спробувати перетворити вхідні дані у відоме кодування, змінити кодування вашого клієнта або і те і інше. (Ми дійсно розтягуємо межі моїх знань про кодування.)
Ви можете скористатися iconv
утилітою для зміни кодування вхідних даних.
iconv -f original_charset -t utf-8 originalfile > newfile
Ви можете змінити кодування psql (клієнт), дотримуючись інструкцій у розділі Підтримка набору символів . На цій сторінці знайдіть фразу "Щоб увімкнути автоматичне перетворення набору символів".