lsが中国語のファイル名を長さでソートするのはなぜですか?

lsが中国語のファイル名を長さでソートするのはなぜですか?

ls奇妙な動作が発生し、中国語のファイル名を理解できません。私はSIPが有効になっています(コアOSの変更はありません)、MacPortsがインストールされており、アメリカ英語がデフォルトの言語であるmacOS 13.6.1を実行しています。

まず、空のフォルダでこの小さなスクリプトを実行してテストファイルを作成します。

import random

random.seed(42)

for i in range(30):
    n = random.randrange(3, 8)
    fn = "".join(random.choice("一二三") for _ in range(n))
    open(fn, "w")

これにより、文字1、2、3のランダムな組み合わせで名前が付けられた30個のファイルが残ります。

次に、ls -lMacで実行しました(マンページによるとバージョン「macOS 13.5」)。

% ls -l
total 8
-rw-r--r--@ 1 brx  staff  164 Nov 25 02:41 test.py
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 一一三
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 一三二
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 三三一
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 二一二
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 一一三一
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 一三二一
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 三三一三
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 三三三三
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 三二三一
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 三二二三
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 二一一一
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 二一三三
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 一三二三三
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 三一三一一
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 三二一三二
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 一三三二三一
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 一二一一三三
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 一二三二一一
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 二一一三三二
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 二三二三二三
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 二二一一二一
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 二二三二一二
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 一三二一一一一
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 一三二一一一二
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 一三二三三三一
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 一二一三二三三
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 三一一二二二三
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 二三三二三二二
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 二三二一二二一

ファイルの並べ替えを消去ファイル名の長さ別しかし、そうでなければソートされていないlsすべての漢字がまったく同じように同じ長さです。

LANGに設定されen_US.UTF-8LC_*変数は設定されていないため、英語のソートの問題かもしれません。

% LANG=zh_CN.utf-8 ls -l
total 8
-rw-r--r--@ 1 brx  staff  164 11 25 02:41 test.py
-rw-r--r--+ 1 brx  staff    0 11 25 02:41 一一三
-rw-r--r--+ 1 brx  staff    0 11 25 02:41 一三二
-rw-r--r--+ 1 brx  staff    0 11 25 02:41 三三一
-rw-r--r--+ 1 brx  staff    0 11 25 02:41 二一二
-rw-r--r--+ 1 brx  staff    0 11 25 02:41 一一三一
-rw-r--r--+ 1 brx  staff    0 11 25 02:41 一三二一
-rw-r--r--+ 1 brx  staff    0 11 25 02:41 三三一三
-rw-r--r--+ 1 brx  staff    0 11 25 02:41 三三三三
-rw-r--r--+ 1 brx  staff    0 11 25 02:41 三二三一
-rw-r--r--+ 1 brx  staff    0 11 25 02:41 三二二三
-rw-r--r--+ 1 brx  staff    0 11 25 02:41 二一一一
-rw-r--r--+ 1 brx  staff    0 11 25 02:41 二一三三
-rw-r--r--+ 1 brx  staff    0 11 25 02:41 一三二三三
-rw-r--r--+ 1 brx  staff    0 11 25 02:41 三一三一一
-rw-r--r--+ 1 brx  staff    0 11 25 02:41 三二一三二
-rw-r--r--+ 1 brx  staff    0 11 25 02:41 一三三二三一
-rw-r--r--+ 1 brx  staff    0 11 25 02:41 一二一一三三
-rw-r--r--+ 1 brx  staff    0 11 25 02:41 一二三二一一
-rw-r--r--+ 1 brx  staff    0 11 25 02:41 二一一三三二
-rw-r--r--+ 1 brx  staff    0 11 25 02:41 二三二三二三
-rw-r--r--+ 1 brx  staff    0 11 25 02:41 二二一一二一
-rw-r--r--+ 1 brx  staff    0 11 25 02:41 二二三二一二
-rw-r--r--+ 1 brx  staff    0 11 25 02:41 一三二一一一一
-rw-r--r--+ 1 brx  staff    0 11 25 02:41 一三二一一一二
-rw-r--r--+ 1 brx  staff    0 11 25 02:41 一三二三三三一
-rw-r--r--+ 1 brx  staff    0 11 25 02:41 一二一三二三三
-rw-r--r--+ 1 brx  staff    0 11 25 02:41 三一一二二二三
-rw-r--r--+ 1 brx  staff    0 11 25 02:41 二三三二三二二
-rw-r--r--+ 1 brx  staff    0 11 25 02:41 二三二一二二一

はい、おそらくこれはlsMacに組み込まれている不都合なものかもしれません。 (MacPortsで)GNU Coreutilsを試してみましょうls (GNU coreutils) 9.4

% gls -l
total 4
-rw-r--r--+ 1 brx staff 164 Nov 25 02:41 test.py
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 一一三
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 一三二
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 三三一
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 二一二
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 一一三一
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 一三二一
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 三三一三
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 三三三三
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 三二三一
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 三二二三
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 二一一一
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 二一三三
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 一三二三三
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 三一三一一
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 三二一三二
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 一三三二三一
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 一二一一三三
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 一二三二一一
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 二一一三三二
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 二三二三二三
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 二二一一二一
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 二二三二一二
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 一三二一一一一
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 一三二一一一二
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 一三二三三三一
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 一二一三二三三
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 三一一二二二三
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 二三三二三二二
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 二三二一二二一
% LANG=zh_CN.utf-8 gls -l
总计 4
-rw-r--r--+ 1 brx staff 164 1125日 02:41 test.py
-rw-r--r--+ 1 brx staff   0 1125日 02:41 一一三
-rw-r--r--+ 1 brx staff   0 1125日 02:41 一三二
-rw-r--r--+ 1 brx staff   0 1125日 02:41 三三一
-rw-r--r--+ 1 brx staff   0 1125日 02:41 二一二
-rw-r--r--+ 1 brx staff   0 1125日 02:41 一一三一
-rw-r--r--+ 1 brx staff   0 1125日 02:41 一三二一
-rw-r--r--+ 1 brx staff   0 1125日 02:41 三三一三
-rw-r--r--+ 1 brx staff   0 1125日 02:41 三三三三
-rw-r--r--+ 1 brx staff   0 1125日 02:41 三二三一
-rw-r--r--+ 1 brx staff   0 1125日 02:41 三二二三
-rw-r--r--+ 1 brx staff   0 1125日 02:41 二一一一
-rw-r--r--+ 1 brx staff   0 1125日 02:41 二一三三
-rw-r--r--+ 1 brx staff   0 1125日 02:41 一三二三三
-rw-r--r--+ 1 brx staff   0 1125日 02:41 三一三一一
-rw-r--r--+ 1 brx staff   0 1125日 02:41 三二一三二
-rw-r--r--+ 1 brx staff   0 1125日 02:41 一三三二三一
-rw-r--r--+ 1 brx staff   0 1125日 02:41 一二一一三三
-rw-r--r--+ 1 brx staff   0 1125日 02:41 一二三二一一
-rw-r--r--+ 1 brx staff   0 1125日 02:41 二一一三三二
-rw-r--r--+ 1 brx staff   0 1125日 02:41 二三二三二三
-rw-r--r--+ 1 brx staff   0 1125日 02:41 二二一一二一
-rw-r--r--+ 1 brx staff   0 1125日 02:41 二二三二一二
-rw-r--r--+ 1 brx staff   0 1125日 02:41 一三二一一一一
-rw-r--r--+ 1 brx staff   0 1125日 02:41 一三二一一一二
-rw-r--r--+ 1 brx staff   0 1125日 02:41 一三二三三三一
-rw-r--r--+ 1 brx staff   0 1125日 02:41 一二一三二三三
-rw-r--r--+ 1 brx staff   0 1125日 02:41 三一一二二二三
-rw-r--r--+ 1 brx staff   0 1125日 02:41 二三三二三二二
-rw-r--r--+ 1 brx staff   0 1125日 02:41 二三二一二二一

とは別にユーモラスにGNU Coreutilsの日付表示が破損しており、変更されていません。動作しているように見える唯一のものは次のとおりですC.utf-8

% LANG=C.utf-8 ls -l
total 8
-rw-r--r--@ 1 brx  staff  164 Nov 25 02:41 test.py
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 ?????????
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 ????????????
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 ??????????????????
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 ?????????
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 ????????????
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 ?????????????????????
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 ?????????????????????
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 ???????????????
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 ?????????????????????
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 ??????????????????
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 ?????????????????????
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 ??????????????????
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 ?????????????????????
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 ???????????????
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 ?????????
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 ????????????
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 ????????????
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 ???????????????
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 ????????????
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 ????????????
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 ????????????
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 ??????????????????
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 ????????????
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 ?????????
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 ?????????????????????
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 ?????????????????????
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 ??????????????????
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 ??????????????????
-rw-r--r--+ 1 brx  staff    0 Nov 25 02:41 ??????????????????
% LANG=C.utf-8 gls -l
total 4
-rw-r--r--+ 1 brx staff 164 Nov 25 02:41 test.py
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 一一三
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 一一三一
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 一三三二三一
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 一三二
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 一三二一
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 一三二一一一一
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 一三二一一一二
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 一三二三三
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 一三二三三三一
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 一二一一三三
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 一二一三二三三
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 一二三二一一
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 三一一二二二三
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 三一三一一
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 三三一
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 三三一三
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 三三三三
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 三二一三二
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 三二三一
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 三二二三
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 二一一一
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 二一一三三二
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 二一三三
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 二一二
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 二三三二三二二
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 二三二一二二一
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 二三二三二三
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 二二一一二一
-rw-r--r--+ 1 brx staff   0 Nov 25 02:41 二二三二一二

ここで何が起こっているのでしょうか?私のMacの地域設定が壊れていますか?

編集する: 説明予想されるls処置:文字を適切なソート順にソートしたいと思います。適切な順序には、Unicodeコードポイント(1、3、2)、数字またはストローク番号の順序(1、2、3)、ピンインシーケンス(2、3)があります。 、1つは「2、3、1」に対応します)。

コメントに答えるためのいくつかの追加情報(en_US.UTF-8ロケール):

  • sortORgsortまたはNOTにパイプすると、順序は変更されません-u

  • 私のシステムには実際にC.utf-8ロケールはありません。これは、Cロケールと同じ出力を得る理由を説明します。バイト値でソートされ、各バイトは?

  • expr '一二三' '<' '三一二'expr '一二三' '>' '三一二'は、macos または GNU を使用するexpr '一二三' = '三一二'かどうかにかかわらず、それぞれ 1、0、0 を返します。exprexpr

  • perl -MPOSIX -le 'print strcoll@ARGV' -- '一' '二'出力がmacosまたはMacPortsに付属しているか-140どうか。perl

  • perl -MPOSIX -le 'print strcoll@ARGV' -- '一一' '二'出力19968

  • これらの文字のエンコーディングは$'\344\270\200\344\270\200\344\270\211'localeに一一三報告されているものと似ているため、UTF-8で正しくエンコードされているようです。glsC

  • 出力はperl -MPOSIX -le 'print unpack "H*", strxfrm$_ for @ARGV' -- '一' '一一' '二'次のとおりです

    303034323030303030346c32
    30303432303034323030303030346c3230346c32
    303034323030303030346e3e
    
  • の出力はperl -MPOSIX -le 'print "$_\t" . unpack "H*", strxfrm$_ for <*>'次のとおりです。

    一一三一  303034323030343230303432303034323030303030346c3230346c3230346c3b30346c32
    一一三   3030343230303432303034323030303030346c3230346c3230346c3b
    一三三二三一    3030343230303432303034323030343230303432303034323030303030346c3230346c3b30346c3b30346e3e30346c3b30346c32
    一三二一一一一   303034323030343230303432303034323030343230303432303034323030303030346c3230346c3b30346e3e30346c3230346c3230346c3230346c32
    一三二一一一二   303034323030343230303432303034323030343230303432303034323030303030346c3230346c3b30346e3e30346c3230346c3230346c3230346e3e
    一三二一  303034323030343230303432303034323030303030346c3230346c3b30346e3e30346c32
    一三二三三三一   303034323030343230303432303034323030343230303432303034323030303030346c3230346c3b30346e3e30346c3b30346c3b30346c3b30346c32
    一三二三三 30303432303034323030343230303432303034323030303030346c3230346c3b30346e3e30346c3b30346c3b
    一三二   3030343230303432303034323030303030346c3230346c3b30346e3e
    一二一一三三    3030343230303432303034323030343230303432303034323030303030346c3230346e3e30346c3230346c3230346c3b30346c3b
    一二一三二三三   303034323030343230303432303034323030343230303432303034323030303030346c3230346e3e30346c3230346c3b30346e3e30346c3b30346c3b
    一二三二一一    3030343230303432303034323030343230303432303034323030303030346c3230346e3e30346c3b30346e3e30346c3230346c32
    三一一二二二三   303034323030343230303432303034323030343230303432303034323030303030346c3b30346c3230346c3230346e3e30346e3e30346e3e30346c3b
    三一三一一 30303432303034323030343230303432303034323030303030346c3b30346c3230346c3b30346c3230346c32
    三三一三  303034323030343230303432303034323030303030346c3b30346c3b30346c3230346c3b
    三三一   3030343230303432303034323030303030346c3b30346c3b30346c32
    三三三三  303034323030343230303432303034323030303030346c3b30346c3b30346c3b30346c3b
    三二一三二 30303432303034323030343230303432303034323030303030346c3b30346e3e30346c3230346c3b30346e3e
    三二三一  303034323030343230303432303034323030303030346c3b30346e3e30346c3b30346c32
    三二二三  303034323030343230303432303034323030303030346c3b30346e3e30346e3e30346c3b
    二一一一  303034323030343230303432303034323030303030346e3e30346c3230346c3230346c32
    二一一三三二    3030343230303432303034323030343230303432303034323030303030346e3e30346c3230346c3230346c3b30346c3b30346e3e
    二一三三  303034323030343230303432303034323030303030346e3e30346c3230346c3b30346c3b
    二一二   3030343230303432303034323030303030346e3e30346c3230346e3e
    二三三二三二二   303034323030343230303432303034323030343230303432303034323030303030346e3e30346c3b30346c3b30346e3e30346c3b30346e3e30346e3e
    二三二一二二一   303034323030343230303432303034323030343230303432303034323030303030346e3e30346c3b30346e3e30346c3230346e3e30346e3e30346c32
    二三二三二三    3030343230303432303034323030343230303432303034323030303030346e3e30346c3b30346e3e30346c3b30346e3e30346c3b
    二二一一二一    3030343230303432303034323030343230303432303034323030303030346e3e30346e3e30346c3230346c3230346e3e30346c32
    二二三二一二    3030343230303432303034323030343230303432303034323030303030346e3e30346e3e30346c3b30346e3e30346c3230346e3e
    test.py   303033563030333830303355303033563030314d303033523030335f30303030303033563030333830303355303033563030314d303033523030335f
    

答え1

同じ長さの文字列にこれらの文字の相対的な順序があるように見えるため、まったく同じとは見なされません。そうではありません

答え2

macOSがロケールファイルを保存する場所を見つけましたが、/usr/share/locale驚くべきことにzh_CN.UTF-8ロケールの定義方法は次のとおりです。

% ls -la /usr/share/locale/zh_CN.UTF-8
total 8
drwxr-xr-x    8 root  wheel   256 Oct 12 04:10 .
drwxr-xr-x  209 root  wheel  6688 Oct 12 04:10 ..
lrwxr-xr-x    1 root  wheel    28 Oct 12 04:10 LC_COLLATE -> ../la_LN.US-ASCII/LC_COLLATE
lrwxr-xr-x    1 root  wheel    17 Oct 12 04:10 LC_CTYPE -> ../UTF-8/LC_CTYPE
drwxr-xr-x    3 root  wheel    96 Oct 12 04:10 LC_MESSAGES
-r--r--r--    2 root  wheel    36 Oct 12 04:10 LC_MONETARY
lrwxr-xr-x    1 root  wheel    25 Oct 12 04:10 LC_NUMERIC -> ../zh_CN.eucCN/LC_NUMERIC
-r--r--r--    2 root  wheel   408 Oct 12 04:10 LC_TIME

LC_COLLATE。のSymlink/usr/share/locale/la_LN.US-ASCII/LC_COLLATEファイルのサイズは2KBを少し超えており(他のシステムで使用されるテキスト形式ではなく)バイナリファイルですが、256バイトの照合順序を非常に明確に定義します。

% xxd /usr/share/locale/la_LN.US-ASCII/LC_COLLATE
00000000: 312e 3141 0a00 0000 0000 0101 0102 0000  1.1A............
00000010: 0102 ffff fefe 0000 0000 0000 0000 0000  ................
00000020: 0000 0000 0000 0000 0002 0000 0002 0000  ................
00000030: 0003 0000 0003 0000 0004 0000 0004 0000  ................
00000040: 0005 0000 0005 0000 0006 0000 0006 0000  ................
00000050: 0007 0000 0007 0000 0008 0000 0008 0000  ................
00000060: 0009 0000 0009 0000 000a 0000 000a 0000  ................
00000070: 000b 0000 000b 0000 000c 0000 000c 0000  ................
00000080: 000d 0000 000d 0000 000e 0000 000e 0000  ................
00000090: 000f 0000 000f 0000 0010 0000 0010 0000  ................
...
00000760: 00e9 0000 00e9 0000 00ea 0000 00ea 0000  ................
00000770: 00eb 0000 00eb 0000 00ec 0000 00ec 0000  ................
00000780: 00ed 0000 00ed 0000 00ee 0000 00ee 0000  ................
00000790: 00ef 0000 00ef 0000 00f0 0000 00f0 0000  ................
000007a0: 00f1 0000 00f1 0000 00f2 0000 00f2 0000  ................
000007b0: 00f3 0000 00f3 0000 00f4 0000 00f4 0000  ................
000007c0: 00f5 0000 00f5 0000 00f6 0000 00f6 0000  ................
000007d0: 00f7 0000 00f7 0000 00f8 0000 00f8 0000  ................
000007e0: 00f9 0000 00f9 0000 00fa 0000 00fa 0000  ................
000007f0: 00fb 0000 00fb 0000 00fc 0000 00fc 0000  ................
00000800: 00fd 0000 00fd 0000 00fe 0000 00fe 0000  ................
00000810: 00ff 0000 00ff 0000 0100 0000 0100 0000  ................
00000820: 0101 0000 0101                           ......

したがって、問題は、macOSが中国語のロケールでも中国語の文字(または実際には最初の256コードポイントを超えた文字)のコントラストを定義しないことです。

関連情報