PG::错误:错误:编码的字节序列无效;UTF8";:通过Taps将MySQL导入PostgreSQL时出现0xed2020(Sequel::DatabaseError)
我一直在尝试将我的MySQL迁移到Postgres,从我发现的gem 不幸的是,它基本上在每个包含用户数据的表上都失败了,并且出现了某种例外PG::错误:错误:编码的字节序列无效;UTF8";:通过Taps将MySQL导入PostgreSQL时出现0xed2020(Sequel::DatabaseError),mysql,ruby,database,postgresql,taps,Mysql,Ruby,Database,Postgresql,Taps,我一直在尝试将我的MySQL迁移到Postgres,从我发现的gem 不幸的是,它基本上在每个包含用户数据的表上都失败了,并且出现了某种例外 PG::Error: ERROR: invalid byte sequence for encoding "UTF8": 0xed2020 (Sequel::DatabaseError) 每个表中的无效字符不同,但例外情况相同 这不是与其他PG::Error:Error:invalid byte sequence for encoding问题的重复
PG::Error: ERROR: invalid byte sequence for encoding "UTF8": 0xed2020 (Sequel::DatabaseError)
每个表中的无效字符不同,但例外情况相同
这不是与其他PG::Error:Error:invalid byte sequence for encoding
问题的重复,因为每个问题都提到使用Iconv.Iconv(“UTF8…”,content)
强制编码。但我不能这样做,因为我正在使用taps进行导入。
还有一点值得注意的是,我试着做了mysqldump--compatible=postgres
,但当我尝试将它导入postgres时,每次查询都失败了
我正在使用MySQL 5.1.63和PostgreSQL 9.1.4。您可以尝试使用SQL\u ASCII编码而不是UTF8来创建PostgreSQL数据库,看看这是否能解决问题 基本上,您的问题似乎是MySQL数据库中有非UTF8编码的文本,您正试图将其导入到使用UTF8编码的PostgreSQL数据库中。如果您真的想让PostgreSQL数据库保持UTF8编码,那么在尝试插入之前,您需要将MySQL中使用的任何编码转换为UTF8 假设问题在数据库级别。如果问题出在ruby级别,您可以尝试使用ruby 1.8(如果您使用的是ruby 1.9),看看这是否会有所不同。请参阅此问题: 启动taps服务器时,添加显式utf-8编码设置应有助于:
taps服务器mysql://user:password@主机/dbname?编码=utf8 httpuser httpass
以服务器身份运行服务器时传递编码-点击服务器mysql://root:root@localhost/tco?编码=UTF8根