此条目涉及 PostgreSQL 的一项功能,该功能是 PostgreSQL 17 的一部分,预计将于 2024 年底发布。
unicode_assigned()
是一个系统函数,用于确定字符串中的所有字符是否都分配了 Unicode 码点。
unicode_assigned()
在 PostgreSQL 17 中添加。
用法
unicode_assigned (text
) →boolean
unicode_assigned()
仅在数据库编码为 UTF8
时才能使用。
变更历史
- PostgreSQL 17
- 添加 (提交 a02b37fc)
示例
unicode_assigned()
的基本用法示例
postgres=# SELECT unicode_assigned(U&'abcほげ'); unicode_assigned ------------------ t (1 row)
包含未分配给 Unicode 字符的码点的字符串
postgres=# SELECT unicode_assigned(U&'abcほげ\+10FFFF'); unicode_assigned ------------------ f (1 row)
在非 UTF8 数据库中尝试使用 unicode_assigned()
postgres=# CREATE DATABASE iso8859 TEMPLATE template0 ENCODING 'iso-8859-1' LOCALE 'C'; CREATE DATABASE postgres=# \c iso8859 You are now connected to database "iso8859" as user "postgres". iso8859=# SELECT unicode_assigned('abc'); ERROR: Unicode categorization can only be performed if server encoding is UTF8
参考
- PostgreSQL 17 文档: SQL 字符串函数和运算符