normalize() 是一个用于将字符串转换为指定 Unicode 规范化形式的系统函数。
normalize() 添加于 PostgreSQL 13。
用法
normalize (text[,formdefaultNFC] ) →text
Unicode 规范化 form 可以是以下值之一:
NFC(Normalization Form Canonical Composition - 规范化形式 C 组合)NFD(Normalization Form Canonical Decomposition - 规范化形式 C 分解)NFKC(Normalization Form Compatibility Composition - 兼容性规范化形式 C 组合)NFKD(Normalization Form Compatibility Decomposition - 兼容性规范化形式 D 分解)
请注意,form 参数是以关键字形式表示的,因此不应包含在单引号中。此外,“兼容性规范化形式”缩写为“NFK”。
normalize() 只能在 UTF8 服务器编码的数据库中使用。
变更历史
- PostgreSQL 13
- 添加于 (提交 2991ac5f)
示例
normalize() 的基本用法示例
postgres=# SELECT normalize('fi', NFKC);
normalize
-----------
fi
(1 row)
在这里,连字 "fi" 被分解为其组成部分 "f" 和 "i"。
使用日文 "square" 字符 "㌕" (U+3315) 的示例,该字符将 "kilogram" 的片假名音译压缩成一个伪字符。
postgres=# SELECT normalize('㌕', NFKC);
normalize
------------
キログラム
(1 row)
参考资料
- PostgreSQL 文档: SQL 字符串函数和操作符
有用链接
- Unicode 规范化形式 - Unicode 标准附录 #15
- 规范化形式 - Wikipedia 文章“Unicode 等价性”
