FileReader読み取りファイルの文字化けしの問題

711 ワード

FileReader fr=new FileReader(new File(filePath));
BufferedReader br = new BufferedReader(fr);

FileReaderを直接使用して中国語の文字を含むファイルを読み取り、文字入力ストリームをBufferedReaderに配置し、BufferedReaderで読み取った中国語の文字列が文字化けしている.
分析:ファイルストリームの読み取りに使用する符号化方式とファイル自体の符号化方式が異なり、読み取りファイルが文字化けしてしまう.
解決策:ファイルを読み取る際に、ファイルを読み取る符号化方式を指定する.

InputStreamReader isr = new InputStreamReader(new FileInputStream(new File(filePath)), "UTF-8");
BufferedReader br = new BufferedReader(isr);

FileInputStreamクラスを使用してファイルストリームを読み取る、BufferedReader構造方法は文字ストリームのみを受信し、InputStreamReaderを利用してバイトストリームを文字ストリームに変換するとともに、ファイルストリームの符号化方式を指定し、文字ストリームをBufferedReaderに配置し、操作を行い、中国語で乱符号を読み取る問題を解決する.