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库中的排序规则。

🏷️

标签

➡️

继续阅读