日期:2014-05-20  浏览次数:20880 次

拷贝的XML文件后出现乱码,如何解决?
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>


------解决方案--------------------
lz是用什么打开拷贝到的文件的?
------解决方案--------------------
试一试其它的编码格式
------解决方案--------------------
你确定原文件打开没问题但拷贝得到的文件打开是乱码?
------解决方案--------------------
编码,编辑器要设置好
------解决方案--------------------
编辑器的格式在IDE中一定要设置好,
------解决方案--------------------
你比较下原文件和拷贝的文件大小是否一样?
------解决方案--------------------
InputStreamReader is = new InputStreamReader(new FileInputStream(new File( "fileName ")), "UTF-8 ");
用 "utf-8 "编码输入流看看
------解决方案--------------------
为啥不用系统调用呢?
Windows的话
Runtime.getRuntime.exec( "cmd /c copy oldfile newfile ");
UNIX的话
Runtime.getRuntime.exec( "cp oldfile newfile ");
------解决方案--------------------
拷贝后的XML文件和原来的大小不一样,那就是拷贝的时候有问题。
不过看这段代码是没有问题的,奇怪。
------解决方案--------------------
用字符流FileReader和FileWriter试试