我正在尝试从我的客户以前的软件供应商(不再出现在图片中)给我的备份中创建一个 Postgres 数据库。但我正在努力解决编码问题。我对 Postgres 不太熟悉(MySQL 是我的事),所以请原谅我的 n00bness。
当我运行时psql dbname < /path/to/file.backup
,它会吐出以invalid command
问号和奇怪字符字符串开头和结尾的各种行,最后一行输出是:
ERROR: invalid byte sequence for encoding "UTF8": 0xf1 0x16 0x88 0x02
我在终端中打开了备份文件,我看到许多 SQL 字符串散布着不可打印的字符(表示为“^@”)。顶部有一些字符串我认为可能与此处相关:
SET client_encoding = 'UTF8';
SET standard_conforming_strings = 'off';
CREATE DATABASE "cleaned_DB" WITH TEMPLATE = template0 ENCODING = 'UTF8' \
LC_COLLATE = 'English_United States.1252' \
LC_CTYPE = 'English_United States.1252';
所以看起来数据库使用的是UTF8编码,但软件供应商的开发机器使用的是WIN1252。我猜备份文件中的字符串在WIN1252中?
我怎样才能导入这个数据库?作为参考,我的开发机器正在运行 Mac OSX。