неверная последовательность байтов для кодировки "UTF8" - PullRequest
115 голосов
/ 01 февраля 2011

Я пытаюсь импортировать некоторые данные в мою базу данных.Итак, я создал временную таблицу,

create temporary table tmp(pc varchar(10), lat decimal(18,12), lon decimal(18,12), city varchar(100), prov varchar(2));

И теперь я пытаюсь импортировать данные ,

 copy tmp from '/home/mark/Desktop/Canada.csv' delimiter ',' csv

Но затем я получаю ошибку,

ERROR:  invalid byte sequence for encoding "UTF8": 0xc92c

Как это исправить?Нужно ли менять кодировку всей моей базы данных (если да, то как?) Или я могу изменить только кодировку моей таблицы tmp?Или я должен попытаться изменить кодировку файла?

Ответы [ 16 ]

1 голос
/ 04 сентября 2017
copy tablename from 'filepath\filename' DELIMITERS '=' ENCODING 'WIN1252';

Вы можете попробовать это для обработки кодировки UTF8.

1 голос
/ 18 мая 2017

Для python вам нужно использовать

Класс pg8000.types.Bytea (str) Bytea - это производный от str класс, который отображается в байтовый массив PostgreSQL.

или

Pg8000.Binary (значение) Построить объект, содержащий двоичные данные.

1 голос
/ 27 мая 2014

Эта ошибка может возникать, если входные данные содержат сам управляющий символ. По умолчанию управляющим символом является символ «\», поэтому, если ваш входной текст содержит символ «\», попробуйте изменить значение по умолчанию с помощью опции ESCAPE.

0 голосов
/ 19 апреля 2018

Открыть файл CSV с помощью Notepad ++.Выберите меню Encoding \ Encoding in UTF-8, затем вручную исправьте несколько ячеек.

Затем попробуйте импортировать снова.

0 голосов
/ 27 марта 2017

Я получил ту же ошибку, когда пытался скопировать csv, сгенерированный Excel, в таблицу Postgres (все на Mac). Вот как я решил это:

1) Откройте файл в Atom (IDE, который я использую)

2) Внести незначительные изменения в файл. Сохраните файл. Отмените изменение. Сохраните снова.

Presto! Команда копирования теперь работает.

(Я думаю, что Atom сохранил его в формате, который работал)

0 голосов
/ 08 февраля 2016

Также возможно с этой ошибкой, что поле зашифровано на месте.Убедитесь, что вы смотрите на нужную таблицу, в некоторых случаях администраторы создают незашифрованное представление, которое вы можете использовать вместо этого.Недавно я столкнулся с очень похожей проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...