サードパーティライブラリcpdetectorを用いてファイルの符号化方式を判断する


Androidでテキストファイルを読み取る場合、ファイルの符号化方式を考慮せずに直接読み取ると文字化けしやすくなります.cpdetectorライブラリは、読み取り前にファイルの符号化方式を判断することができ、ファイルの読み取り時に得られたファイルの符号化方式charsetを直接設定することができ、文字化けしません.
public static String getFileCharset(String filePath) {
        //           
        File file = new File(filePath);

        Charset charset = null;
        try {
            //         
            CodepageDetectorProxy detector = CodepageDetectorProxy.getInstance();
            detector.add(JChardetFacade.getInstance());
            charset = detector.detectCodepage(file.toURL());
        } catch (IOException e) {
            e.printStackTrace();
        }

        return charset.name();
    }

最後に取得したcharsetをinputstreamReaderに設定します.
String charset = charset.name();
InputStreamReader isr = new InputStreamReader(fis, charset);

cpdetectorダウンロードアドレス:[http://sourceforge.net/projects/cpdetector/]