我想将POSTGRESQL数据库从一台服务器移到另一台服务器。为了做到这一点,我做了一个pg_dump,然后在新服务器上创建一个新的数据库后,我尝试恢复pg_dumped文件。在大部分情况下,恢复是正常的,但一张桌子没有复制。我遇到无效UTF8字节序列的问题
pg_restore: [archiver (db)] COPY failed: ERROR: invalid byte sequence for encoding "UTF8": 0x92
HINT: This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".
现在,检查数据库属性后,事实证明,原始表在SQL_ASC2编码,但我创建了一个新的UTF8。 我对编码一无所知,但不是UTF8向后兼容ASC2?那么,为什么有一个无效的字节序列?
将新数据库更改为使用SQL_ASC2的数据库会修复此问题吗? 如果我必须更改新数据库的编码,我该如何做?我可以改变它,还是必须从头开始并重新制作整个数据库?
感谢您的帮助!
谢谢,我没有完全按照你所说的做,但是当我创建了备份文件(对于表中的问题),我选择了latin9,然后我恢复了表。有些数据看起来有些不同,实际上有些数据现在是可读的,而在没有数据之前,虽然还有一些时髦的角色,噢,他们之前就在那里,只是不同类型的时髦。 – zermy