相关疑难解决方法(0)

PostgreSQL 是否支持 ICU 整理的选项和设置?

ICU 指定不同的LDML 整理设置。其中一些看起来很有趣,尤其是关于大小写和口音的那些,

  • “忽略重音”: strength=primary
  • “忽略重音”但要考虑大小写: strength=primary caseLevel=on
  • “忽略大小写”: strength=secondary
  • “忽略标点符号”(完全): strength=tertiary alternate=shifted
  • “忽略标点符号”但区分标点符号:strength=quaternary alternate=shifted可能是更好的做事方法

您还可以在此处查看这些文档PostgreSQL 10 ICU 整理支持是否可以使用这些 ICU 选项和设置?

CREATE COLLATION special (provider = icu, locale = 'en@strength=primary');
SELECT 'Å' LIKE 'A' COLLATE "special"; # returns false
Run Code Online (Sandbox Code Playgroud)

我也试过CLDR BCP47

从 ICU 54 开始,排序规则属性也可以通过语言环境关键字指定,使用旧的语言环境扩展语法 (" el@colCaseFirst=upper") 或语言标记语法 ("el-u-kf-upper")。关键字和值不区分大小写。请参阅LDML 归类规范、归类设置和列出有效归类关键字及其值的数据文件。(不支持已弃用的属性 kh/colHiraganaQuaternary 和 vt/variableTop。)

为此,这看起来是对的

CREATE COLLATION special (provider = icu, locale = 'en-ks-level1');
SELECT …
Run Code Online (Sandbox Code Playgroud)

postgresql collation postgresql-10 international-components-unicode

3
推荐指数
1
解决办法
1485
查看次数