サンプル集  >  Java  >  文字コードを調べる(UniversalDetector)
文字コードを調べる(UniversalDetector)
2023/05/03

UniversalDetectorで文字コードを調べます。

◆環境
OS Windows 10 Home 21H2
Java 16.0.2

UniversalDetectorはjuniversalchardet-2.4.0.jarに含まれています。

以下のページからダウンロードしました。


https://jar-download.com/artifacts/com.github.albfernandez/juniversalchardet

mojiCodeCheck.java
 1: 
 2: 
 3: 
 4: 
 5: 
 6: 
 7: 
 8: 
 9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
41: 
42: 
43: 
44: 
45: 
46: 
47: 
48: 
49: 
50: 
51: 
52: 
53: 
54: 
55: 
56: 
57: 
58: 
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import org.mozilla.universalchardet.UniversalDetector;

/**
 * 文字コードを調べる
 * @author ymlib.com
 */

public class mojiCodeCheck
{
    public static void main( String args[] )
        throws IOException
    {
        byte[] buf = new byte[4096];

        File fin = new File( args[0] );
        FileInputStream is = new FileInputStream( fin );

        // 文字コード判定ライブラリの実装
        UniversalDetector ud = new UniversalDetector( null );

        // 判定開始
        int ret;
        while ( true )
        {
            ret = is.read( buf );
            if ( ret <= 0 )
            {
                break;
            }
            if ( ud.isDone() )
            {
                break;
            }
            ud.handleData( buf, 0, ret );
        }

        // 判定終了
        ud.dataEnd();

        // 文字コード判定
        String encType = ud.getDetectedCharset();
        if ( encType != null )
        {
            System.out.println( "文字コード=" + encType );
        }
        else
        {
            System.out.println( "文字コード判定失敗" );
        }

        // 判定の初期化
        ud.reset();

        is.close();
    }
}

javac -cp juniversalchardet-2.4.0.jar mojiCodeCheck.java

◆実行結果
>java -cp .;.\juniversalchardet-2.4.0.jar mojiCodeCheck mojiCodeCheck
.java
文字コード=SHIFT_JIS

文字コードの判定ができました。

juniversalchardet-2.4.0.jarの最終更新が約3年前なので、もっと新しい方法があるかもしれません。

▲ PageTop  ■ Home


Copyright (C) 2023 ymlib.com