将Bytea转换为Json

时间:2019-05-17 14:15:57

标签: postgresql

我正在尝试分析作为Json文本但存储在bytea列中的Postgresql数据库中的数据。某些行可以转换,而其他行则不能。转换编码的bytea时,文本内没有CodePoints的Json可以正常工作

select encode(myByteaColumn, 'escape')::json -> aJsonProperty as myProp from myTable

但是对于某些行,这失败了,因为字符串中有一些编码的CodePoint,例如德国的Umlauts(Ä,Ö等), 像这样对bytea进行编码时,像Zuständigkeit这样的德语单词将显示为Zust\303\244ndigkeit

select encode(myByteaColumn, 'escape') from myTable

数据库设置为UTF-8。

1 个答案:

答案 0 :(得分:1)

demo: db<>fiddle

convert_from()为我工作:

SELECT convert_from(decode('Zuständigkeit', 'escape'),'UTF8')

SELECT convert_from(decode('{"Zuständigkeit":"ABC"}', 'escape'),'UTF8')::jsonb -> 'Zuständigkeit'