拷贝的XML文件后出现乱码,如何解决?

时间:2021-06-13 23:41:36
public static void copyFile(File src,File dest){
        try{
            FileInputStream in = new FileInputStream(src);
            FileOutputStream out = new FileOutputStream(dest);
            byte[] buffer = new byte[1024];
            int length = -1;
            while((length = in.read(buffer)) != -1){
                out.write(buffer,0,length);
            }
            out.flush();
            out.close();
            in.close();
        }catch(Exception e){
            System.out.println(e);
        }
    }
上面的是拷贝文件的方法,我的XML文件格式是UTF-8,里面有一堆中文,经过上面的方法拷贝到另一个地方后,里面的中文就变成了乱码,我该如何解决呢?
另:我的XML例子
<?xml version="1.0" encoding="UTF-8"?>
<AA>
  <BB id="1" name="中文">
    <CC name="中文"/>
  </BB>
  <BB id="2" name="中文"/>
</AA>

16 个解决方案

#1


lz是用什么打开拷贝到的文件的?

#2


我是用EditPlus打开的,关键是如何拷贝没问题(XML文件不出现乱码),我的程序就没问题,若出现乱码,我的程序就因乱码而出错.有些时候拷贝就出现乱码,不是所有拷贝都是乱码,怎么能控制都不是乱码呢?

#3


试一试其它的编码格式

#4


你确定原文件打开没问题但拷贝得到的文件打开是乱码?

#5


编码,编辑器要设置好

#6


楼主回复:

其他的格式也试了但用到我程序里就出问题了,不适合我的程序啊.
我确定原文件打开没问题,拷贝后的文件是有可能出现乱码,但不一定每次都是乱码,楼上说的
    编码,编辑器要设置好
可以问下如何设置么?

#7


编辑器的格式在IDE中一定要设置好,

#8


你比较下原文件和拷贝的文件大小是否一样?

#9


InputStreamReader is = new InputStreamReader(new FileInputStream(new File("fileName")),"UTF-8");
用"utf-8"编码输入流看看

#10


为啥不用系统调用呢?
Windows的话
Runtime.getRuntime.exec("cmd /c copy oldfile newfile");
UNIX的话
Runtime.getRuntime.exec("cp oldfile newfile");

#11


楼主回复:

拷贝后的XML文件和原来的大小不一样.

编辑器的格式在IDE中一定要设置好
(怎么设置???)

#12


楼主回复:

windvscloud(大翼) 你好!

InputStreamReader is = new InputStreamReader(new FileInputStream(new File("fileName")),"UTF-8");

怎么改写我上面的代码,能贴出来么,谢谢

#13


拷贝后的XML文件和原来的大小不一样,那就是拷贝的时候有问题。
不过看这段代码是没有问题的,奇怪。

#14


用字符流FileReader和FileWriter试试

#15


楼主回复:

能不能给个具体的代码,谢谢了

#16


格式

#1


lz是用什么打开拷贝到的文件的?

#2


我是用EditPlus打开的,关键是如何拷贝没问题(XML文件不出现乱码),我的程序就没问题,若出现乱码,我的程序就因乱码而出错.有些时候拷贝就出现乱码,不是所有拷贝都是乱码,怎么能控制都不是乱码呢?

#3


试一试其它的编码格式

#4


你确定原文件打开没问题但拷贝得到的文件打开是乱码?

#5


编码,编辑器要设置好

#6


楼主回复:

其他的格式也试了但用到我程序里就出问题了,不适合我的程序啊.
我确定原文件打开没问题,拷贝后的文件是有可能出现乱码,但不一定每次都是乱码,楼上说的
    编码,编辑器要设置好
可以问下如何设置么?

#7


编辑器的格式在IDE中一定要设置好,

#8


你比较下原文件和拷贝的文件大小是否一样?

#9


InputStreamReader is = new InputStreamReader(new FileInputStream(new File("fileName")),"UTF-8");
用"utf-8"编码输入流看看

#10


为啥不用系统调用呢?
Windows的话
Runtime.getRuntime.exec("cmd /c copy oldfile newfile");
UNIX的话
Runtime.getRuntime.exec("cp oldfile newfile");

#11


楼主回复:

拷贝后的XML文件和原来的大小不一样.

编辑器的格式在IDE中一定要设置好
(怎么设置???)

#12


楼主回复:

windvscloud(大翼) 你好!

InputStreamReader is = new InputStreamReader(new FileInputStream(new File("fileName")),"UTF-8");

怎么改写我上面的代码,能贴出来么,谢谢

#13


拷贝后的XML文件和原来的大小不一样,那就是拷贝的时候有问题。
不过看这段代码是没有问题的,奇怪。

#14


用字符流FileReader和FileWriter试试

#15


楼主回复:

能不能给个具体的代码,谢谢了

#16


格式