为了账号安全,请及时绑定邮箱和手机立即绑定

从流里读数据到字节数组不够的为啥全为\0了

从流里读数据到字节数组不够的为啥全为\0了

叮当猫咪 2018-12-06 12:37:43
using (Stream inputStream = request.InputStream)                     {                         byte[] bytes = new byte[4096];                         int iread = 0;                         //循环从数据流中获取请求所提交的数据,存入字节数组                         while (true)                         {                             iread = inputStream.Read(bytes, 0, 1024);                               if (iread == 0)                                 break;                         }                           //将获取的字节数组转换成固定字符集的字符串                         string requestParam = encoding.GetString(bytes);   requestParam内容最后为:测容\0\0\0\0\0\0\0\0.....   我抛到界面上显示,就是因为多了后面那些0 使用\r\n都不能换行了   this.txtServerReceiveMsg.AppendText("接受到客户端请求:" +requestParam +"\r\n");          
查看完整描述

4 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

.net  framework 4.0    的stream 好像可以截断,     就是说  iread 是你读到的 数,      8 ,9 啊什么的。 楼上的函数应该是正确的。  3.5 stream 好像是不行, iread 就一直是1024.这时候需要咱自己手动截断
查看完整回答
反对 回复 2018-12-09
?
森栏

TA贡献1810条经验 获得超5个赞

我看不出这里有任何问题。字符串后边的结束符\0不影响输出,就是说你可以忽略这些\0。别烦恼了:)
查看完整回答
反对 回复 2018-12-09
  • 4 回答
  • 0 关注
  • 447 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信