JAVAで、 utf8 以外のテキストファイルを読み込むと文字化けする


JAVAで、テキストファイルを読み込む処理を下記の様に作ったのですが、  
読み込むテキストファイルが、EUCやShift-JIS、GB2312などのように、  
UTF-8以外の場合、読み込んだStringの中が、文字化け状態です。

ユニコード（UTF-8)に変換して、読み込まれていないのが原因？

尚、読み込むファイルの文字コードの判定方法は不明なので、  
今は、下記の様に固定で、UTF-8を指定しています。

★事前に文字コードを判定する処理や、このソースへ追加／修正することで、  
JAVAが何かの変換処理で？サポートしている？文字コードなら、  
UTF-8として、Stringに、読み込めるようにできないでしょうか？

[code]

    InputStreamReader   fr  = null;
    BufferedReader      br  = null;
    
    try {
        fr  = new InputStreamReader(new FileInputStream(strFile_name), "UTF-8");
        br  = new BufferedReader(fr);
    
        // 既存のreadLine()では\rまたは\n、および\r\nにて改行とみなしている。
        String strLine  = null;
        int    iCount   = 0;
        while ((strLine = br.readLine()) != null) { // null=ファイルの最後
            file_text_line.add(strLine);
            iCount++;
        }
    
        br.close();
        fr.close();
    
        return iCount;  // 読込み成功（注意：0件の時もある）
    }
    catch (FileNotFoundException e) {
    
[/code]




昔の知識ですが、EUC-JPやShift_JIS系なら `"JISAutoDetect"` を指定する手があります。

Java8の時代にはもうないかも、と思ったけど[まだある](https://docs.oracle.com/javase/8/docs/technotes/guides/intl/encoding.doc.html)みたいです。

