Как исправить «последовательность октетов # (130) не может быть декодирована». в pgloader - PullRequest
1 голос
/ 11 апреля 2019

Я пытаюсь перенести базу данных из sqlite в postgresql, используя pgloader .Моя база данных sqlite - это data.db, поэтому я пробую это

pgloader ./var/data.db postgres://***@ec2-54-83-50-174.compute-1.amazonaws.com:5432/mydb?sslmode=require

Вывод:

pgloader version 3.6.1
sb-impl::*default-external-format* :UTF-8
tmpdir: #P"/var/folders/65/x6spw10s4jgd3qkhdq96bk8c0000gn/T/"
KABOOM!

2019-04-11T19:22:47.022000+01:00 NOTICE Starting pgloader, log system is ready.

FATAL error: :UTF-8 stream decoding error on #<SB-SYS:FD-STREAM for "file /Users/mackbookpro/Desktop/dev/www/Beyti/var/data.db" {1005892A93}>: the octet sequence #(130) cannot be decoded.

Date/time: 2019-04-11-18:22An unhandled error condition has been signalled: :UTF-8 stream decoding error on #<SB-SYS:FD-STREAM for "file /Users/mackbookpro/Desktop/dev/www/Beyti/var/data.db" {1005892A93}>: the octet sequence #(130) cannot be decoded.

Идея об этой проблеме?заранее спасибо

1 Ответ

0 голосов
/ 14 мая 2019

Это проблема кодировки символов.

Преступник «последовательность октетов # (130)» соответствовал «é» в моем случае, который был закодирован как \ x82. iconv не удалось. Я заменил в потоке байтов эти поврежденные \ x82 на \ x65 (ascii char "e"), и я вышел из него.

<bad_file xxd -c1 -p | sed s/82/65/ | xxd -r -p > good_new_file

(поздравляет Наташу на irc freenode #gcu :)) Изменить: французские проблемы? та же проблема с # 133 "а", то же решение \ x85 -> \ x61

Редактировать 2: Небольшое обобщение, которое я только что нашел: Pgloader «последовательность октетов» относится к десятичному ранжированию таблицы ascii . Когда вы получаете больше 127 в «последовательности октетов», вы входите в расширенную таблицу ascii и генерируете ошибки. У меня проблема с № 144? Это \ x90. заменить:)

...