为什么 String#localeCompare 在 H 和 I 之间放置"ʻ"(ʻOkina)?



背景

ʻ,Okina,Unicode代码点U+02BB MODIFIER LETTER TURNED COMMA,是:

在许多波利尼西亚语言中,拉丁文字中用于标记音位声门停止的一院辅音字母

不要与'甚至混淆,它们分别是直的和卷曲的单引号。

问题

为什么:

[...'hiʻ'].sort((a, b) => a.localeCompare(b)).join('')

是否将hʻi作为其答案?换言之,localeCompare是根据什么判断奥基纳在字母表中位于H之后和I之前的?

ECMAScript标准简单地提到;这两个字符串以一种实现定义的方式";,然而Chromium和Firefox都同意这种订购方式,至少在en-US语言环境中是这样。

似乎大多数(所有?(在字母表中包含的语言都只是将其放在末尾。是否有一些Unicode标准定义了Chromium和Firefox都使用的字母顺序?或者,如果不是,他们从哪里得到介于H和I之间的想法?

,这真是一个有趣的位置。

是否有一些Unicode标准定义Chromium和Firefox都使用的字母顺序?

是。排序规则(顾名思义(是一个主题。Unicode在不同的地方都涵盖了它,例如在Unicode技术报告10中,至少在TR15中有一部分。我还没有找到如何处理Okina的具体理由,但总的来说,据我所知,这些规则旨在确保一个语言环境(而不仅仅是语言(可以指定如何在该语言环境中整理字符。

这并不一定意味着这个位置在美国或英国这样的英语地区会有意义,但希望在一个适当支持波利尼西亚语言的地区,它会以一种有意义的方式进行整理。

我不确定这是一个答案,而是一个指向哪里的指针。我希望我能指出具体的原因。我相信有一个,它不是随便放在那里的。它(原因(很可能会在排序规则数据文件中的一个注释中。或者一个母语为英语的人可能会在他们的头顶上说";当然,这就是它的发展方向,因为________">

相关内容

  • 没有找到相关文章

最新更新