ReadJEnc C#(.NET)用ファイル文字コード種類自動判別ライブラリ
ReadJEnc C#(.NET)用ファイル文字コード種類自動判別ライブラリ
C#(.NET Framework)向けテキストファイル文字コード自動判別&読出ライブラリです。
自作のgrepツール(TresGrep/HNXgrep)の文字コード自動判別機能をC#のライブラリとして切り出したものです。
テキストファイル読み出し・文字エンコード判別の基本的な手順ですが、
// 文字エンコードを判別したいファイルを、FileInfoオブジェクトなどで指定
void Example(System.IO.FileInfo file)
{
// ファイル自動判別読み出しクラスを生成
using (Hnx8.ReadJEnc.FileReader reader = new FileReader(file))
{
// 判別読み出し実行。判別結果はReadメソッドの戻り値で把握できます
Hnx8.ReadJEnc.CharCode c = reader.Read(file);
// 戻り値のNameプロパティから文字コード名を取得できます
string name = c.Name;
Console.WriteLine("【" + name + "】" + file.Name);
// GetEncoding()を呼び出すと、エンコーディングを取得できます
System.Text.Encoding enc = c.GetEncoding();
// 実際に読み出したテキストは、Textプロパティから取得できます
// ※非テキストファイルの場合は、nullが設定されます
string text = reader.Text;
// 戻り値の型からは、該当ファイルの大まかな分類を判断できます
if (c is CharCode.Text)
{
Console.WriteLine("-------------------------------------");
Console.WriteLine(text);
}
}
}
Hnx8.ReadJEnc.WinForm.Sample
のプロジェクトをご覧ください。ソースコード主要部分については、以下のblog記事で簡単に解説しています。
このライブラリに関する不具合・疑問点・感想などありましたら、作者BLOGの適当な記事へフィードバックをお寄せください。
Issues、Pull requestsでも連絡を受け付けます。
英語版README.mdの整備、ならびにターゲットフレームワークの複数化対応は、Nordes Ménard-Lamarreさんが行ってくださいました。 厚くお礼申し上げます。