vagrant box ubuntu/bionic64 と Bento/ubuntu-20.04 には 2 つの仮想ボックスマシン(最初は ubuntu 18.04、2 番目は 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
これで、2つの特定のタイ語の文字列を並べ替えることができます。
vagrant@bionic:~$ sort << eof
> ธรรมสถาน
> ศาลเจ้า
> eof
上記は2つのLTSに対して異なる結果を返します。 Ubuntu 20.04の場合:
ธรรมสถาน
ศาลเจ้า
Ubuntu 18.04の場合:
ศาลเจ้า
ธรรมสถาน
問題を解決しようとして頭をぶつけ続けたが、役に立たなかった。これまで私が見つけた唯一の関連ソースは次のとおりです。ICUリファレンスセクションタイ/ラオス文字の特殊処理に関しては、そんな矛盾が発生するとは思いません。私はまたタイ語を話すことができないので、タイ語のアルファベットの辞書順の規則を知らず、何が正しいか、何がそうでないかを区別することはできません。
この問題の原因は何ですか? 2つのバージョン間のソート順序を何とか維持できますか?