ここでは、HmCustomStringEncoder
の主な設定パラメータの解説となります。
といっても、3種類しかありません。
指定のエンコードに「これから変換すると何か問題が発生しますか?」
といった程度の意味合いとなります。
ここに記載されているコードページの全てに対応しているものと思いますが、
こちらは(一部のコードページしか記載されていませんが)日本語なので、分かりやすく、参考になることでしょう。
全てを確認したわけではないので、OSがVista等、古い場合は、
対象の言語圏のOSでないと指定が出来ないコードページがあるかもしれません。
932。sjisです。
「文字列を正規化する度合い」、あるいは「範囲」といった方が良いかもしれません
Unicodeには「サロゲートペア」や「結合文字」があります。
焦点となるのは、この結合文字が中心となります。
例えば、「が」という文字は、
#NormalizeFormに1以上を設定することで、
この「2つ以上のデータで合わせて1文字」を表現しているものは、
事前に「1つのデータ文字」として結合済みのものにしてから処理しますよ、ということになります。
上で言えば、先に「が」という「結合済みの文字」にしてから文字コード変換の調査を行います。
何もしない
結合文字をあぶりだしたい場合には、このオプションが良いかもしれません。
デフォルトです。
結合文字など、多数データで構成される文字に対して、NFCタイプのUnicode正規化を行います。
(詳細参照: Unicode正規化とは)
元々1文字で表現されていたデータに対しては、Normalizeを行わないことで、NFCによる漢字変形の弊害を最小限に抑えます。
元々1文字のものも含めて、全てをNFCタイプのUnicode正規化を行った後に、処理し結果を出します。
これによって一部の旧字体(やそのような雰囲気を持つ漢字)が、新字体(や日常的に利用する漢字の形)へと変形してしまう場合があります。
1となります。
これについては、すでに利用法のページで体験した通りです。
デフォルトで記載してある「ペアの例」は、
特に意味があるようなものではありませんので、
削除したのち、ご自身の利用法に沿うものへと書き換えましょう。
#ToEncodeCodePageを、「65001(=utf8)」や「1200(=utf16le)」などとし、
#NormalizeFormは「1」とします。
そうすれば、「結果のタブ」には可能な限り、結合済みの文字へと正規化された文字列が出力されます。
該当の文字コードで保存出来る、と言えるのは、あくまでも「結果」の方のデータです。
下記で言えば、「HmCustomStringEncoder → [932]の結果」タブとして出た内容は、
SJISでエラー無く保存が可能なことでしょう。
例え、「赤色が1カ所も出なかったしても」、
該当文字コードで保存が可能と言えるのは、あくまで「結果のタブ」に出ているものです。
例えば、先述の「2つのデータで構成された『が』」は結合前の状態では、
秀丸でsjisとしては保存できないかもしれませんが、
「結果タブ」に出ている方は、結合した状態なので、保存が可能です。