Java を使用してその内容を読み取りたい、奇妙なエンコーディング「UCS-2 リトル エンディアン」のテキスト ファイルがあります。
上記のスクリーンショットでわかるように、ファイルの内容は Notepad ++ で問題なく表示されますが、このコードを使用して読み取ると、コンソールにガベージが出力されます。
String textFilePath = "c:\strange_file_encoding.txt"
BufferedReader reader = new BufferedReader( new InputStreamReader( new FileInputStream( filePath ), "UTF8" ) );
String line = "";
while ( ( line = reader.readLine() ) != null ) {
System.out.println( line ); // Prints garbage characters
}
要点は、ユーザーが読み取るファイルを選択するため、任意のエンコードにすることができます。ファイルのエンコードを検出できないため、「UTF8」を使用してデコードしますが、上記の例のように正しく読み取れません.
そのような奇妙なファイルを正しい方法で読み取る方法はありますか? または、少なくとも、コードが正しく読み取れないかどうかを検出できますか?