秀丸が対象の外部テキストを「これから」初めて「あなたの秀丸エディタ」で読み込んだと仮定すると、
秀丸は、対象のファイルをどのエンコードと判断するだろうか、その結果を取得する関数です。
ポイントは「初めて」と「あなたの秀丸エディタ」の設定で読み込んだ場合、ということになります。
どのPCでも同じとなる汎用的な結果が返ってくる機能ではありません。
設定は、秀丸より「その他」⇒「動作環境」⇒「ファイル」⇒「エンコード1」で主に設定されています。
この優先順位にしたがって判定され、また、チェックが付いていないエンコード値は、この関数では「取り扱わないもの」とされます。
このように、あくまでも「あなたの秀丸エディタの設定」と一致したエンコード情報が欲しい場合に、このメソッドを利用します。
hm.File.GetEncoding( String filepath )
この返り値のオブジェクトには「MsCodePage」と「HmEncode」がプロパティとして存在します。
HmEncodeには、秀丸マクロの「encode」の解説書 の「encode」の項目に対応する値が格納されています(※)。
MsCodePageには、秀丸の独自のencode値を、Windows上での「コードページ」の番号へと置き換えたものです。
対象のパスにファイルを置いたり、ファイル名を変更したり、ファイルのエンコードを変更するなどして、
いろいろと挙動を確認してみましょう。
特に、「その他」⇒「動作環境」⇒「ファイル」⇒「エンコード1」 で判定対象となっていないエンコードの場合に、
強引にどれかに秀丸が当てはめようとしてしまうため、判定ミスが発生します。
よって、この関数が使えるには、「対象のディレクトリには、自分自身が使っている秀丸なら一発でエンコードが正しく判断可能」でありという
「そういったファイル群に対してのみ自動で振り分けて処理をする」といった限られたシーンで利用することとなるでしょう。
上述では、秀丸の機能を使って外部ファイルのエンコードを判定しましました。
該当のソースでは、.NET Frameworkのクラスを利用して、テキストを読み込んでいますが、
秀丸から提供されている関数を利用したメソッドも提供しています。
このように、あくまでも「あなたの秀丸エディタの設定」と一致したテキスト読み込み結果が欲しい場合に、このメソッドを利用します。
マクロ中でもマクロ中以外でも、常時取得することが出来ます。
IHidemaruStreamReader Hm.File.Open( String filepath, [int hm_encode] )
となっています。
秀丸の自動エンコード判定では、失敗する時、あるいは、事前にエンコードが決め打たれている場合には、
エンコードを指定することが出来ます。
とはいえ、エンコードが事前に分かっているのであれば、普通に .NET Frameworkのファイル読み込み系のクラスメソッドを利用したほうが良いでしょう。