問題: Java プログラムを使用して中国語の文字を含む txt ファイルを読み書きすると、読み書きされるコンテンツが文字化けして見えることがよくあります。その理由は実は非常に単純で、システムエンコーディングとプログラムエンコーディングが異なるエンコーディング形式を使用しているからです。通常、自分で変更しない場合、Windows 自体が使用するエンコード形式は gbk です (そして、gbk と gb2312 は基本的に同じエンコード方式です)。IDE のエンコードを変更しない場合、デフォルトのエンコードは utf- 8、それが文字化けの原因です。 OS上で手動で作成・書き込みしたtxtファイル(gbk)をプログラム(utf-8)で直接読み込むと文字化けしてしまいます。中国語の文字化けの問題を回避するには、ファイルの書き込みおよび読み取り時にエンコード形式を明示的に指定することをお勧めします。
1. ファイルの書き込み:
public static void writeFile(String fileName, String fileContent) { try { File f = new File(fileName); if (!f.exists()) { f.createNewFile(); } OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(f),"gbk"); BufferedWriter writer=new BufferedWriter(write); writer.write(fileContent); writer.close(); } catch (Exception e) { e.printStackTrace(); } }
2. ファイルの読み取り:
public static String readFile(String fileName) { String fileContent = ""; try { File f = new File(fileName); if(f.isFile()&&f.exists()) { InputStreamReader read = new InputStreamReader(new FileInputStream(f),"gbk"); BufferedReader reader=new BufferedReader(read); String line; while ((line = reader.readLine()) != null) { fileContent += line; } read.close(); } } catch (Exception e) { e.printStackTrace(); } return fileContent; }
Java で txt ファイルを読み書きする際の中国語の文字化け問題を防ぐ方法の詳細については、PHP の中国語 Web サイトに注意してください。関連記事!