トップ  >  サンプルソース  >  漢字コード判定(C#/VB.NET)

漢字コード判定(C#/VB.NET)

2010年01月04日

全角(漢字)コードを判定するサンプル(ソース/コード)です。NonCodeNet.dll を使っています。判別出来る漢字コードはBIN/EUC/JIS/SJIS/UNICODE/UTF7/UTF8です。BINとはバイナリの事です。

全角の漢字コードが分かればエンコードを指定して読み込めます。
(例)StreamReader("a.txt", Encoding.GetEncoding("UTF-8"))

※漢字コード関係のツールやサンプルはこちら「漢字コード関係」です。

' -------------------------------------------------------
' 漢字コードを判別するサンプル(VB.NET/VS2005)
' NonCodeNet.dllを参照設定しています。
Private Sub Button1_Click( _
    ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click

    ' 漢字コードを判別するクラス
    Dim objNonCode As NonCodeNet.NonCodeClass = _
        New NonCodeNet.NonCodeClass()

    ' フォルダ内のファイルの一覧取得
    Dim curFol As System.IO.DirectoryInfo = _
        New System.IO.DirectoryInfo("D:\Temp")
    Dim files As System.IO.FileInfo() = curFol.GetFiles()

    ' ファイルを読み込み漢字コードを判別
    For i As Integer = 0 To files.Length - 1
        ' ファイルをバイナリ形式で読み込む
        Dim sr As System.IO.Stream = _
            System.IO.File.Open(files(i).FullName, _
            System.IO.FileMode.Open, _
            System.IO.FileAccess.Read)
        Dim br As System.IO.BinaryReader = _
            New System.IO.BinaryReader(sr)
        Dim dt As Byte() = New Byte(sr.Length - 1) {}
        br.Read(dt, 0, dt.Length)
        br.Close()
        sr.Close()

        ' ファイルの漢字コードを判定する
        ' バイナリも判定
        Dim code As String = _
            objNonCode.GetCodeName(dt, True)
        System.Diagnostics.Debug.WriteLine( _
            files(i).FullName & vbTab & code)
    Next
End Sub
' -------------------------------------------------------

// ------------------------------------------------------
// 漢字コードを判別するサンプル(C#.NET/VS2005)
// NonCodeNet.dllを参照設定しています。
private void button1_Click(object sender, EventArgs e)
{
    // 漢字コードを判別するクラス
    NonCodeNet.NonCodeClass objNonCode =
        new NonCodeNet.NonCodeClass();

    // フォルダ内のファイルの一覧取得
    System.IO.DirectoryInfo curFol =
        new System.IO.DirectoryInfo(@"D:\Temp");
    System.IO.FileInfo[] files = curFol.GetFiles();

    // ファイルを読み込み漢字コードを判別
    for (int i = 0; i <= files.Length - 1; i++)
    {
        // ファイルをバイナリ形式で読み込む
        System.IO.Stream sr =
            System.IO.File.Open(files[i].FullName,
            System.IO.FileMode.Open,
            System.IO.FileAccess.Read);
        System.IO.BinaryReader br =
            new System.IO.BinaryReader(sr);
        Byte[] dt = new Byte[sr.Length];
        br.Read(dt, 0, dt.Length);
        br.Close();
        sr.Close();

        // ファイルの漢字コードを判定する
        // バイナリも判定
        String code =
            objNonCode.GetCodeName(ref dt, true);
        System.Diagnostics.Debug.WriteLine(
            files[i].FullName + "\t" + code);
    }
}
// ------------------------------------------------------

// 判別結果の例
// D:\Temp\euc.txt EUC
// D:\Temp\jis.txt JIS
// D:\Temp\sjis.txt SJIS
// D:\Temp\unicode.txt UNICODE
// D:\Temp\utf7.txt UTF7
// D:\Temp\utf8.txt UTF8
スポンサーサイト

ファイルZIP圧縮(VB.NET) | トップページへ戻る | テキストファイル比較(C#/VB.NET)

このページのトップに戻る

コメント

名前
題名
メールアドレス
WEBサイト
 
コメント
パスワード
  管理者にだけ表示を許可する

このページのトップに戻る

トラックバック

このページのトップに戻る