大家好,我要用Socket.Send()函数发送一串字符,英文和数字都可以,但当含有中文字符时就错了
代码:
Byte[] bytes = System.Text.Encoding.Default.GetBytes(str);//str含有中文字符
Socket.Send(bytes,len,0)解决后立即给分

解决方案 »

  1.   

    如果遇到这样的问题请使用Unicode编码。
    byte [] data=System.Text.Encoding.Unicode.GetBytes(string);
      

  2.   

    用Unicode时,在Socket.Send()后就停止响应了
      

  3.   

    songhtao(三十年孤独) :
    接受方的编码我也哪里设置呀
      

  4.   

    我在写LAN聊天程序的时候就用的Unicode而且我还对发送的数据加了密。结果是什么问题都没有!很正常!
      

  5.   

    我的部分代码:
    Socket.Send("REPT 文件名");
    如果文件名包含中文字符时,将返回错误信息,文件未找到
      

  6.   

    在MSDN中有例子(同步)。你把他使用的编码改写成Encoding.Default就可以发送中文了。然后在对照你写的东西。就知道你错在那里了。
      

  7.   

    用gb2312百分百可以.例:
    ============================================================
      TcpSendData="您好!!!"
       Encoding encode = Encoding.GetEncoding("gb2312");
       byte[] toData=encode.GetBytes(TcpSendData.ToString());
       nts.Write(toData,0,toData.Length);
       nts.Flush();
    ============================================================
      

  8.   

    在Send的时候,还是会出现问题,中文字符变成"?????"
      

  9.   

    呵呵default是ascii当然不行,你发也要用unicode,然后收用unicode 就好了