在 pgAdmin 和其他 PostgreSQL IDE 之间查询"SELECT text(textsend_i('一)));"时得到不同的结果



>我在pgAdmin4上搜索中文单词"一"时遇到了问题。

当我使用终端或其他 SQL IDE 时,查询结果是"e4b880"(十六进制 UTF-8 字节(,但 pgAdmin4返回了"344\270\200"(八进制 UTF-8 字节(,我们数据库存储的数据是"e4b880",所以我无法使用 pgAdmin4 获得查询结果,我尝试更改 pgsql 的客户端编码但情况没有改变, 真的希望有人能给我一些建议,谢谢。

select text(textsend_i('一')); 

两者都是相同的正确值。

不同之处在于,在 pgAdmin 会话中,参数bytea_output设置为escape,而在其他会话中,它设置为默认值hex

感谢Laurenz的建议,我终于找到了解决pgAdmin4上问题的方法。

SELECT encode(convert_to('一', 'UTF-8'), 'HEX')

最新更新