使用此查询时遇到问题:
select decode(to_hex(ascii('ل')::int),'hex')
当我执行它时,我得到:
ERROR: invalid hexadecimal data: odd number of digits
答案 0 :(得分:2)
decode(..., 'hex')
并不意味着将此十六进制数转换为某个值。十六进制编码是字节的特定编码格式,每个八位字节需要两个十六进制数字。另一方面,to_hex
将整数转换为十六进制表示,并且可以具有偶数或奇数位数。
所以答案是,你不能这样做(没有一些手动修正)。并且不清楚你为什么要这么做。看起来你可以做'ل'::bytea
,但这可能不是你想要的。
答案 1 :(得分:0)
使用这样的东西可能更简单:
select encode('ل','escape');