获取Unicode值[PostgreSQL]
如果你看到这个 这一切都是关于unicode代码范围的 例如:获取Unicode值[PostgreSQL],postgresql,unicode,Postgresql,Unicode,如果你看到这个 这一切都是关于unicode代码范围的 例如: U+0644 ل d9 84 ARABIC LETTER LAM 在PostgreSQL中,很容易获得十六进制值: select encode('ل','hex') 它将返回十六进制值d9 84 但是如何获得unicode代码点呢 谢谢如果您的输入字符串是UTF-8格式,您可以使用以下功能: ascii(字符串)整数 参数的第一个字符的ASCII码。 对于UTF8,返回字符的Unicode码点。其他 多字节编码。参数必
U+0644 ل d9 84 ARABIC LETTER LAM
在PostgreSQL中,很容易获得十六进制值:
select encode('ل','hex')
它将返回十六进制值d9 84
但是如何获得unicode代码点呢
谢谢如果您的输入字符串是UTF-8格式,您可以使用以下功能: ascii(字符串)整数 参数的第一个字符的ASCII码。 对于UTF8,返回字符的Unicode码点。其他 多字节编码。参数必须是严格的ASCII字符
我尝试选择ascii('ل')::int,但结果是'1604',而不是644。感谢
1604
是十六进制值的十进制表示形式0x644
-如果需要十六进制值,请运行to_hex(ascii('1604;'))
。嗨,Andres,我在运行此查询时遇到了新问题,请选择decode(to_hex(ascii('1604;')::int),'hex');我得到错误“错误:无效十六进制数据:奇数位数”嗯,你为什么要这样做?这似乎是向后的,因为你已经有了一个字符?@Thessa,如果你想反转这个过程,你可以使用chr()
,例如chr(1604)
将给出“ل”