byte[] buffer = new byte[1024]
转化的时候用
Encoding.Unicode.GetString(buffer)
因为buffer并没有赋满1024个字符,所以发现转化出来的字符串后面有一堆“\0\0\0\0\0\0\0\0\0\0...“
请问如何转化不让字符串带着这么多无用字符?

解决方案 »

  1.   

    Encoding.Unicode.GetString(buffer,index,count)
      

  2.   

    Encoding.Unicode.GetString(buffer,0,n)
    n为你赋值的个数
      

  3.   

    string bizstr = "xxx";
    byte[] unbiz = System.Text.Encoding.Default.GetBytes(bizstr);
      

  4.   

    Encoding.Unicode.GetString(buffer).TrimEnd('\0')
      

  5.   

    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);
      

  6.   

    用 qyuhen(秋雨痕)  的方法管用。来者有分