|
colderさん、
08015でお世話になったshimaです。
引き続き xsort.hmf を利用させていただいております。
今回は「文字列長ソート」についてです。
以下の「鴎」の文字はすべて(左側に小さな口が3つある、[U+9DD7]の文字)に置き
換えて読んでください。
「森鴎外」を含むUTF-8のデータに文字列長ソートを実行してみて、「鴎」の字が
長さ1とみなされているらしいことに気づきました。
以下のデータは、この点を確認するために作成したものです。
このデータ(エンコードはUTF-8)を
ソート(Unicode・降順)
などでソートして、いったん順序を乱した後、
ソート(Unicode・昇順) → 文字列長ソート(降順)
を実行すると、以下のような並びになり、次のことがわかります。
「鴎」は長さが1とみなされている。
「鴎鴎」は2、「鴎外」や「鴎鴎鴎」は3、「森鴎外」は5、「森鴎外作」は
7。
標準のエンコードの種類をShift-JISに設定しているので、このデータをコピーし、
新規作成ファイルに貼り付けるとShift-JISになります。
このとき「鴎」だけは、ステータスバーの文字コードが U+9DD7 のように U+XXXX で
表示されます。
このような文字が長さ1とみなされるのではないかと推測して、U+6890 / U+6891 /
U+6892 の3文字を試してみたところ、やはり長さが1とみなされていました。
文字列長ソートを使う際の制限などはあるのでしょうか。
−−−−−テスト用データ、ここから(「鴎」は[U+9DD7]の文字に変換してください)
999999999
iiiiiiiii
88888888
hhhhhhhh
あいうえ
サシスセ
夏目漱石
池井戸潤
7777777
ggggggg
森鴎外作
666666
ffffff
あいう
サシス
池井戸
55555
eeeee
森鴎外
4444
dddd
あい
サシ
下町
秀丸
333
ccc
鴎外
鴎鴎鴎
22
bb
あ
サ
潤
鴎鴎
1
a
z
鴎
−−−−−テスト用データ、ここまで
|
|