日本語ファイル名の表示順No.11659
Y_H さん 25/07/21 12:14
 
日本語ファイル名の表示順について質問させていただきます。
以下は簡単な例ですが、

サ1.txt
サ3.txt
ザ2.txt
ザ4.txt

というファイルがあるフォルダを「名前」でソートすると、

サ1.txt
ザ2.txt
サ3.txt
ザ4.txt

となり、濁音の有無は無視されるようです。
これはエクスプローラーもそうなるので、Windowsの比較関数の仕様なのだろうと思
うのですが、
このフォルダをファイル検索で検索して、検索結果の一覧を「名前」でソートすると、

サ1.txt
サ3.txt
ザ2.txt
ザ4.txt

となり、濁音の有無が区別されています。
これは、同じ「名前」でも、通常のファイル一覧と検索結果の一覧とで、
違う方法で比較されているということになりますでしょうか?

個人的には、ここも同じように表示されないかなとは思うのですが、
どこかで切り替えたりできるものでしょうか?

よろしくお願いいたします。

[ ]
RE:11659 日本語ファイル名の表示順No.11660
秀丸担当 さん 25/07/22 11:08
 
検索結果の名前順は、確かに独自になっています。
あるフォルダ内の名前順は、Windowsによるソート順になっています。
検索結果の場合は、フォルダをまたぐことがあるので、Windowsによるソート順では
ない独自です。
数値などを考慮したUnicode順になっています。
設定で変えることはできないです。

一応別の方法としては、拡張カラムを使った方法もあります。
https://hide.maruo.co.jp/lib/hmfcext/hmfilerclassicstrsort103.html
これを使うと、Windowsによる判断だったり、数値の桁の判断だったりが無い、純粋
な文字列としてのソートにできます。

[ ]
RE:11660 日本語ファイル名の表示順No.11661
Y_H さん 25/07/22 13:43
 
>あるフォルダ内の名前順は、Windowsによるソート順になっています。
>検索結果の場合は、フォルダをまたぐことがあるので、Windowsによるソート順では
>ない独自です。
>数値などを考慮したUnicode順になっています。

解説いただきありがとうございます。
通常のフォルダではWindowsの判定に任せていて、
検索結果では独自にStrCmpLogicalWのような判定で行われているということですか。

XPとかの頃は、エクスプローラーもStrCmpLogicalWの順序だったと記憶していますが、
どのバージョンからかこんな濁音無視の順序になっていたのですね。

[ ]
RE:11661 日本語ファイル名の表示順No.11662
秀丸担当 さん 25/07/22 17:06
 
以前のエクスプローラ相当は濁音無視ではなかったと思いますが、いつからか変わっ
たようです。
検索結果はフォルダをまたぐのでエクスプローラのものをそのまま使えないですが、
通常のファイル一覧を独自に合わせるのは比較的やりやすいです。
従来の使い方をする目的からしても、通常のファイル一覧を独自にする設定など検討
しようと思います。

[ ]
RE:11662 日本語ファイル名の表示順No.11663
Y_H さん 25/07/23 09:36
 
検討いただきありがとうございます。

・XPよりもさらに前の方法
・XPの頃の方法
・最近の濁音無視の方法
・OSの動作に従う

など選べるのはよい機能だと思います。
今後のネタとしてよろしくお願いいたします。

ちなみに、自分でも調べてみたところ、
Vista以降にはCompareStringExというAPIがあるようで、
これにNORM_IGNORENONSPACEを指定すると、濁点・半濁点などの結合文字を無視でき
るという情報がありました。
https://learn.microsoft.com/ja-jp/windows/win32/api/stringapiset/nf-stringapiset-comparestringex

ご存じだったら申し訳ありませんが、
ひょっとしたらこのAPIを使えば、検索結果の画面でも比較できるのではと思いました。

[ ]
RE:11663 日本語ファイル名の表示順No.11664
秀丸担当 さん 25/07/23 10:48
 
情報ありがとうございます。
そういう方法もあるのですね。
今後のネタにさせていただきます。

[ ]