怎样把string receiveString = Encoding.Default.GetString(buffer)
转换为 "abc"这样的字符串?
receiveString所得"abc"看似一样,但本质不同了,不能比较。平台是C#.该怎样做,谢谢

解决方案 »

  1.   

    这一句是将本机ANSI码编码的文本字节数组解码并重新编码为UTF-16的字符串...如果你是简体中文系统,那么buffer中的"abc"字符串的内码必然和receiveString中的"abc"字符串的内码不同...至于后面那句...同1楼,看不懂你在说什么...
      

  2.   

    为什么不能比较啊
    if(receiveString == "abc")
      

  3.   

    代码大概是这样的:
    byte[] buffer = new byte[BufferSize];
    NetworkStream  streamToClient.Read(buffer, 0, BufferSize);
    string receiveString = Encoding.Default.GetString(buffer);
    MessageBox.show(receiveString);//这里就是显示abc
    if (receiveString.Equals("abc")){}//比较的结果是false我就是想能够比较返回true
    该怎样做?
      

  4.   

    你最好加个断点看一下receiveString的值,它有可能在末尾带有空格或\0等的字符
      

  5.   

    同意楼上的,MessageBox这东西在这个地方不准的,你看receiveString里面有没有不可显示的字符如'、0','\r'或'\n'等,如果receiveString的值为"abc\0######################",肯定和"abc"的结果不同。