如何修复 pgloader 中的 "the octet sequence #(130) cannot be decoded."
How to fix "the octet sequence #(130) cannot be decoded." in pgloader
我正在尝试使用 pgloader 将数据库从 sqlite 迁移到 postgresql。
我的 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.
关于这个问题的想法?提前谢谢你
这是一个字符编码问题。
在我的例子中,罪魁祸首 "octet sequence #(130)" 对应于“é”,它被编码为 \x82。
iconv 失败。
我在字节流中用 \x65 (ascii char "e") 替换了那些损坏的 \x82,然后我摆脱了它。
<bad_file xxd -c1 -p | sed s/82/65/ | xxd -r -p > good_new_file
(在 irc freenode #gcu 上为 Natacha 干杯 :))
编辑:法语问题?与 #133 "à" 相同的问题,相同的解决方案 \x85 -> \x61
编辑 2:我刚刚发现的一点概括:
"octet sequence" pgloader指的,是小数位的ascii table。当您在 "octet sequence" 中获得高于 127 的值时,您将进入扩展的 ascii table 并产生错误。
我刚遇到 #144 的问题?它是\x90。替换 :)
我正在尝试使用 pgloader 将数据库从 sqlite 迁移到 postgresql。 我的 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.
关于这个问题的想法?提前谢谢你
这是一个字符编码问题。
在我的例子中,罪魁祸首 "octet sequence #(130)" 对应于“é”,它被编码为 \x82。 iconv 失败。 我在字节流中用 \x65 (ascii char "e") 替换了那些损坏的 \x82,然后我摆脱了它。
<bad_file xxd -c1 -p | sed s/82/65/ | xxd -r -p > good_new_file
(在 irc freenode #gcu 上为 Natacha 干杯 :)) 编辑:法语问题?与 #133 "à" 相同的问题,相同的解决方案 \x85 -> \x61
编辑 2:我刚刚发现的一点概括: "octet sequence" pgloader指的,是小数位的ascii table。当您在 "octet sequence" 中获得高于 127 的值时,您将进入扩展的 ascii table 并产生错误。 我刚遇到 #144 的问题?它是\x90。替换 :)