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

ByteArrayOutputStream写入问题,字符丢了
ByteArrayOutputStream   byteOutputStream   =new   ByteArrayOutputStream();
FileOutputStream   outputStream=new   FileOutputStream(outputName);//输出流

byteOutputStream.write( " <Data> ".getBytes());
byteOutputStream.write(encoded,0,encoded.length);
byteOutputStream.write( " </Data> ".getBytes());
byteOutputStream.writeTo(outputStream);

encoded是加密后的二进制字符数组byte[],都是乱码。

显示结果是:   <Data>   遵 <WE示?彆,?/Data>
为什么 </Data> 前的 " < "丢了   显示不出来啊?


------解决方案--------------------
估计是你没有正确的指定字符集,XML默认是UTF-8的

你encoded可能不是UTF-8
------解决方案--------------------
你用UltraEdit打开,然后用二进制查看,看看 </Data> 处的左括号是不是对应ASCII码为 3C ,如果是的话就没有问题,只是显示的时候,可能恰好与某个中文的一半匹配了,就显示不出来了