f627422467
Aries丶方
采纳率100%
2015-08-13 11:41 浏览 1.6k

InputSteam 在android和servlet之间传值时的乱码问题

1

用HttpURLConnection连接web端,web接收数据,及android端接收数据均是utf-8格式
但是最终inputstream被byte数组接收,并转换成string类型是乱码了,求大神解救

if(conn.getResponseCode()==200){
InputStream inStream = conn.getInputStream();
byte[] data=StreamTool.read(inStream);
System.out.println("&&&&&&&&"+data);
String result = new String(data,"utf-8");
System.out.println("**********"+result);
if(result.equals("Sucess")){
boolean flag = true;
return flag;
}
}

    ![图片说明](https://img-ask.csdn.net/upload/201508/13/1439466047_75275.png)
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答 默认 最新

  • 已采纳
    f627422467 Aries丶方 2015-08-13 12:40

    解决了,但是不明白为什么,就是在StreamTool这个工具类里面定义buffer数组是定义的长度是1024
    byte[] buffer = new byte[1024];
    只要将1024改成1即可

    很不明白为什么是这样,这个不是缓存用的么,当读完之后,不是就停止了么?为什么当读完Sucess之后又自动添加了好多?去填充呢?
    大神们,求原因呐.....

    点赞 评论 复制链接分享
  • f627422467 Aries丶方 2015-08-13 11:45

    08-13 11:38:10.604: I/System.out(969): **********Sucess????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
    这是LogCat的信息

    点赞 评论 复制链接分享
  • f627422467 Aries丶方 2015-08-13 11:48

    08-13 11:38:10.604: I/System.out(969): &&&&&&&&[B@5373a980
    这是byte数组打印出来的信息,到底哪里错了,大神们坐等啊

    点赞 评论 复制链接分享
  • u013814964 疯狂的枫叶 2015-08-13 12:25

    我说下我遇到这种情况的方法:
    1.浏览器访问试试,调试到浏览器访问没有问题,在看手机端。
    2.下个例子,看懂例子后,重新写一边。(改错的时间,够你写十边)。

    不求有功,但求无过。。。

    点赞 评论 复制链接分享

相关推荐