Peter Eisentraut:标点符号和空格的排序规则如何运作
原文英文,约1400词,阅读约需5分钟。
📝
内容提要
本文介绍了 PostgreSQL 中标点符号和空格的排序规则,包括四种处理变量排序元素的方式:non-ignorable、blanked、shifted 和 shift-trimmed。排序结果不同,需要根据实际需求选择。使用 C 库时,排序规则由库自动选择;使用 ICU 库时,可以通过指定 locale 来选择排序规则。
🎯
关键要点
-
本文介绍了 PostgreSQL 中标点符号和空格的排序规则。
-
用户对标点符号和空格的排序处理常常感到困惑。
-
Unicode 提供了四种处理变量排序元素的方式:non-ignorable、blanked、shifted 和 shift-trimmed。
-
non-ignorable:标点符号和空格被视为普通排序元素。
-
blanked:标点符号和空格被完全忽略。
-
shifted:标点符号和空格的权重被移至第四级,普通元素的第四级权重设置为FFFF。
-
shift-trimmed:类似于shifted,但去掉尾部的FFFF序列。
-
选择排序规则取决于使用的库,C库和ICU库的默认行为不同。
-
C库在2.28版本后采用shifted行为,ICU库默认采用non-ignorable行为。
-
可以通过指定locale来选择ICU库中的排序规则。
🏷️