请教获取Byte[]内信息时的问题

wwq0123 2009-02-21 05:13:25
我用下面的方法对要发送的数据封装时,因为tmpbuf的长度是不确定的,当tmpbuf的长度没有40的时候那byte会在后面长度里自动添加什么来补空位?
tmpbuf = System.Text.Encoding.Unicode.GetBytes(head.Sender);
Array.Copy(tmpbuf, 0, buffer, 4, tmpbuf.Length < 40 ? tmpbuf.Length : 40);
tmpbuf = System.Text.Encoding.Unicode.GetBytes(head.Recevier);
Array.Copy(tmpbuf, 0, buffer, 44,tmpbuf.Length < 40 ? tmpbuf.Length : 40);
我再用下面的方法获取数据的时候时截取的40的长度,可是这样获取的字符串无法正常使用,比如我不能在后面添加任何字符串,那如何将40的长度里没用的
部分删掉,就是如何删掉自动添加的那些东西。
head.Sender = System.Text.Encoding.Unicode.GetString(buffer, 4, 40);
head.Recevier = System.Text.Encoding.Unicode.GetString(buffer, 44, 40);
有哪位可以帮帮我的,如何我说的不清楚请留言。
...全文
44 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwq0123 2009-02-21
  • 打赏
  • 举报
回复
是的,如果是int型该怎么删除?
chaye12 2009-02-21
  • 打赏
  • 举报
回复
GetString这里改成GetInt不行?楼主这个意思?
wwq0123 2009-02-21
  • 打赏
  • 举报
回复
请问下,如果是int型的该怎么办?谢谢
zgke 2009-02-21
  • 打赏
  • 举报
回复
head.Sender = System.Text.Encoding.Unicode.GetString(buffer, 4, 40).Replace("\0", "");
head.Recevier = System.Text.Encoding.Unicode.GetString(buffer, 44, 40).Replace("\0", "");

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧