我正在尝试分析作为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。
答案 0 :(得分:1)
convert_from()
为我工作:
SELECT convert_from(decode('Zuständigkeit', 'escape'),'UTF8')
SELECT convert_from(decode('{"Zuständigkeit":"ABC"}', 'escape'),'UTF8')::jsonb -> 'Zuständigkeit'