问题描述
FileWriter无法编码utf-8导致中文乱码
原因
FileWriter 默认是用(ISO-8859-1 or US-ASCII)西方编码的,而FileWriter类有getEncoding方法,却没有setEncoding的方法,总之不是UTF-8的。
解决办法
原:
File file1 = new File("D:\\TEST.xml");
FileWriter fw = new FileWriter(file1);
fw.write("要输入的字符串");
fw.flush();
fw.close();
转换为:
File file1 = new File("D:\\TEST.xml");
Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file1), "UTF-8"));
writer.write("要输入的字符串");
writer.flush();
writer.close();