vagrant box ubuntu/bionic64 和 Bento/ubuntu-20.04 上有两台 virtualbox 机器(第一个是 ubuntu 18.04,第二个是 ubuntu 20.04)。启动后,我们将区域设置 en_US.UTF-8 定义为sudo update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8
.现在,两者的区域设置应该相同:
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
现在我们可以尝试对两个特定的泰语字符串进行排序:
vagrant@bionic:~$ sort << eof
> ธรรมสถาน
> ศาลเจ้า
> eof
上面为两个 LTS 返回了不同的结果。对于 ubuntu 20.04:
ธรรมสถาน
ศาลเจ้า
对于 ubuntu 18.04:
ศาลเจ้า
ธรรมสถาน
我一直敲着头想找出问题所在,但无济于事。到目前为止我发现的唯一可能相关的来源是ICU 参考部分关于泰语/老挝字符的特殊处理,但我不认为这会导致如此不一致。我也不会说泰语,所以我不知道泰语字母表的词典排序规则,无法判断什么似乎是正确的,什么是不正确的。
有什么想法可能导致此问题吗?是否可以以某种方式保留两个版本之间的排序顺序?