normalize()
是一个用于将字符串转换为指定 Unicode 规范化形式的系统函数。
normalize()
添加于 PostgreSQL 13。
用法
normalize (text
[,form
defaultNFC
] ) →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 等价性”