代码大概如下:
--------------读
InputStreamReader read = new InputStreamReader (new FileInputStream(excel),inEncode);
BufferedReader br = new BufferedReader(read);
--------------写
File outFile = new File(excel.getPath().substring(0,excel.getPath().lastIndexOf("."))+".txt");
OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(outFile),outEncode);
BufferedWriter bw = new BufferedWriter(write);
----------------------- 在将内容写到文件的时候出现乱码-------------------------------
bw.write(content);
bw.newLine();
-------------------------打印出来是正常的
System.out.println(content);大家帮忙看下,感激不尽!
--------------读
InputStreamReader read = new InputStreamReader (new FileInputStream(excel),inEncode);
BufferedReader br = new BufferedReader(read);
--------------写
File outFile = new File(excel.getPath().substring(0,excel.getPath().lastIndexOf("."))+".txt");
OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(outFile),outEncode);
BufferedWriter bw = new BufferedWriter(write);
----------------------- 在将内容写到文件的时候出现乱码-------------------------------
bw.write(content);
bw.newLine();
-------------------------打印出来是正常的
System.out.println(content);大家帮忙看下,感激不尽!
(虽然我们常说 眼见为实)你需要确定文件中的字节二进制编码是否正确。有时编码是对的,看的方式不对而已。
OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(outFile),outEncode);
设置编码了啊,
你说的写的时候也要设置编码,怎么设置?能说详细点吗 谢啦
bw.write(new String(content.getBytes(), outEncode)); //or content.getBytes(inEncode)
bw.newLine();
第一 你写的时候是否设置字符编码
第二 你用文本编辑器打开看的时候 要设置一下文本编辑器的编码
例如 你用utf-8写的文件 如果文本编辑器此时的编码是ANSI 也是会看到乱码滴
while((content=br.readLine())!=null){
bw.write(content);
bw.newLine();
System.out.println(content);
}是这样写的
可以说:只要你没有指错源文件的字符集(估计是的,因为print到控制台对的),那么你最终得到的文件中不是乱码。请选择合适的字符集来查看目标文件。
你把文件强制转型了吧,不转型应该不会的乱了
content = new String(content.getBytes(inEncode), outEncode);
bw.write(content);
bw.newLine();