微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Postgresql中如何将base64解码值作为字符串而不是十六进制表示?

Python中我编码了一个字符串,

>>> base64.b64encode('1111')
'MTExMQ=='

现在,当我尝试在Postgresql中解码它时,我得到了十六进制值而不是原始字符串.

=# select decode('MTExMQ==','base64');

   decode   
------------
 \x31313131

如何在Postgresql中没有任何更改的情况下获取原始字符串?

解决方法

您可以使用convert_from将二进制数据转换为varchar:

select convert_from(decode('MTExMQ==','base64'),'UTF8')

但请注意,如果输入实际上是二进制数据(而不是某些文本),例如图像文件,则这可能是有损的(或失败).

不需要在Postgresql中存储Base64编码的数据.您可以使用其中一种二进制列类型并直接存储数据(并且更紧凑).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐