关于encoding.getEncoding("gb2312").getstring(bytes),一句话的问题

lbywyj 2003-10-28 03:18:45
byte[] byteRec = new byte[10];
workSock.Receive(byteRec);
string sRec =
Encoding.GetEncoding("gb2312").GetString(byteRec);
单步执行结果是sRec的值是:agent\0\0\0\0\0
即:缓冲区中没被填满的空间,被自动用\0来填充了
为什么?
关于utf7,utf8的区别是什么?
...全文
1000 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lbywyj 2003-10-29
  • 打赏
  • 举报
回复
问题已就决,可是我觉得在接收数据是,是不是有其他办法,例如接收到的数据只包含发送来数据,而不必把缓冲区都给填满阿
没办法,我对接收来的字符串用了截取函数,看想一想,这个办法怎么好
大家帮帮忙
lbywyj 2003-10-28
  • 打赏
  • 举报
回复
为什么没人回答?
lbywyj 2003-10-28
  • 打赏
  • 举报
回复
哈哈,用string 的trim是行不通的,因为\0本身有不是空格,怎么能用trim呢?
jl1024 2003-10-28
  • 打赏
  • 举报
回复
用\0来填充是因为缓冲区的未用的空间被自动初始化赋值的结果。你只要用string的Trim方法,把多余的部分剔除掉就可以了。
有关utf的内容,你可以去www.unicode.org看看,那里有相关资料。

111,125

社区成员

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

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

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