chr()
是一个系统函数,用于将整数转换为ASCII或UTF8字符。
chr()
在 PostgreSQL 7.1 中添加。
用法
chr (integer
) →text
在使用UTF8编码时,整数参数被视为Unicode代码点。在其他编码中,参数必须表示ASCII字符。
0
不允许,因为它无法被文本数据类型存储。
如果提供无效的输入参数值,则会引发错误。
要获取字符的数字代码,请使用 ascii()
。
变更历史
- PostgreSQL 9.4
- 现在仅接受根据RFC 3629有效的UTF8字符(提交 7894ac50)
- PostgreSQL 7.1
示例
chr()
的基本用法示例
postgres=# SELECT chr(97); chr ----- a (1 row)
使用其UTF8代码点返回Unicode字符
postgres=# SELECT chr(12354); chr ----- あ (1 row)
在非UTF8数据库中,只能提供有效的ASCII值
locale_test=# \l locale_test List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -------------+----------+----------+----------------+----------------+------------------- locale_test | postgres | LATIN1 | de_DE.iso88591 | de_DE.iso88591 | (1 row) locale_test=# SELECT chr(12354); ERROR: requested character too large for encoding: 12354
当客户端编码不是UTF8时,也适用此规则
postgres=# SET client_encoding TO latin1; SET postgres=# SELECT chr(12354); ERROR: character with byte sequence 0xe3 0x81 0x82 in encoding "UTF8" has no equivalent in encoding "LATIN1"
0
无法提供
postgres=# SELECT chr(0); ERROR: null character not permitted
参考文献
- PostgreSQL文档: 其他字符串函数