我有一个数据库服务器和一个编码为UTF8的客户端,并且客户端有时用SJIS或LATIN1写入数据,
ERROR: invalid byte sequence for encoding "UTF8": 0xd5 0x78
我尝试将client_encoding设置为SJIS,然后就可以了
我想知道为什么会发生此错误吗?
因为我认为UTF8支持本文档中介绍的两个文件
https://www.postgresql.org/docs/11/multibyte.html#id-1.6.10.5.7
有什么方法可以使其自动转换而无需手动设置编码?
答案 0 :(得分:1)
否,您需要明确告诉它客户端使用什么编码。 Postgres确实支持两种编码之间的自动转换,但不支持自动编码 detection 。如果假定客户端使用UTF-8,但随后又写了一些SJIS字节,则它们可能最终会变成无效。