byte[]数组转化为字符串的问题

qyflaoda 2006-07-21 10:30:32
byte[] buffer = new byte[1024]
转化的时候用
Encoding.Unicode.GetString(buffer)
因为buffer并没有赋满1024个字符,所以发现转化出来的字符串后面有一堆“\0\0\0\0\0\0\0\0\0\0...“
请问如何转化不让字符串带着这么多无用字符?
...全文
234 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
viena 2006-07-21
  • 打赏
  • 举报
回复
int i = 1023;
byte b = buffer[i];
while(b==0 && i>0)
{
i--;
b = buffer[i];
}
//i是最后一个不为0的byte的索引,
//如果是单字节字符,两个字节中后一个字节为0
if(i % 2==0)++i;

Encoding.Unicode.GetString(buffer,0,++i);
qyuhen 2006-07-21
  • 打赏
  • 举报
回复
Encoding.Unicode.GetString(buffer).TrimEnd('\0')
qyflaoda 2006-07-21
  • 打赏
  • 举报
回复
问题是我不知道里面有多少个字符,我是接收过来的
bumm 2006-07-21
  • 打赏
  • 举报
回复
string bizstr = "xxx";
byte[] unbiz = System.Text.Encoding.Default.GetBytes(bizstr);
lifeixie 2006-07-21
  • 打赏
  • 举报
回复
动态分配空间的,没办法,那写默认为 0了。你可以分配少点空间
Josion 2006-07-21
  • 打赏
  • 举报
回复
Up
hzw66 2006-07-21
  • 打赏
  • 举报
回复
Encoding.Unicode.GetString(buffer,0,n)
n为你赋值的个数
viena 2006-07-21
  • 打赏
  • 举报
回复
Encoding.Unicode.GetString(buffer,index,count)
qyflaoda 2006-07-21
  • 打赏
  • 举报
回复
用 qyuhen(秋雨痕) 的方法管用。来者有分

110,537

社区成员

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

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

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