java 按行读取utf-8文件且处理每行string,将处理后的string写到一个新的utf-8格式文件,不能有乱码

2025-03-22 04:13:48
推荐回答(3个)
回答1:

代码没问题,检测一下你的xml文件是否是真正的utf-8编码的文件,不要说,xml文件内容里声明是utf-8编码就是utf-8编码。或者把encoding="UTF-8",改为encoding="GBK",看一下乱不乱码,如果不乱码,说明你的xml文件其实是gbk编码。

回答2:

/*

把你的代码贴出来吧,好知道自己错在什么地方, 这样印象也深刻一些,才能真的弄懂了,

学习java不建议做伸手党

------------------------------------------------

*/

BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(new File("filepath")), "UTF-8")); // read encoding
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File("filepath")), "UTF-8")); //writer  encoding
String str = null;while ((str = br.readLine()) != null) {
println(str);
bw.write(str);
bw.newLine();// 换行
bw.flush();
str = br.readLine();
}
br.close();
bw.close();

回答3:

String tag = "UTF-8";
String str = "读取乱码";
String tempStr = new String(str.getBytes("ISO-8859-1"), tag);


BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(
                    fileName), tag));