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

Java byte数组转换成String 乱码的问题
本帖最后由 zhuyouyong 于 2013-12-16 14:44:58 编辑
代码如下所示


          byte[] bytes = new byte[] { 50, 0, -1, 28, -24 };
String sendString = "";
try {
sendString=new String(bytes ,"UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO 尚未处理异常
e.printStackTrace();
}
System.out.println(sendString);


想把字节码数组转换成String类型,用于网络传输,但是转换后发现String都是乱码,webService传输也是报错的,希望大家能帮忙解决。

------解决方案--------------------
使用序列化可以么,转换为字符串肯定是不合适的。
------解决方案--------------------
引用:
Quote: 引用:

{ 50, 0, -1, 28, -24 }; 
是怎么得来的?

byte数组是读取一张图片生成的,此处只是一个举例说明。想把这个byte[] 作为参数传递到一个webservice接口中,直接传出现问题,所以想转换成String来传。

webservice服务端提供的方法签名是什么样子的?感觉byte[]类型应该不会有传输问题的。
------解决方案--------------------
你就这么点数据 webservice 完全没问题,我用webservice送过 30万行xml,约有50M大完全没问题.
主要是在编码转换问题上:
 byte[] bytes = new byte[] { 50, 0, -1, 28, -24 }; 你才5个字节,如果有汉字会出错的,
utf-8是三字节一个汉字,不信用你汉字转一下: "汉".getBytes("utf-8") 看看是多长.