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

继续阅读