我用socket通信,英文没问题,可是中文总是乱码。 sende = Encoding.Default.GetBytes(send);应该用哪个字符集?

解决方案 »

  1.   

    一个个的试
    一般通讯协议会告诉你的.
    也就那么几个
    ASCII
    Unicode
    GB2312
      

  2.   

    Encoding.GetEncoding("gb2312").getBytes(ss);
      

  3.   

    Default是个不靠谱的东西,他与系统的区域设置有关如果接受和发送都是你自己的程序,推荐你用Utf8
    如果你只负责写一部份,那你要搞清楚对方用的是什么编码
      

  4.   

     byte[] AbyStr = System.Text.Encoding.Default.GetBytes(AsendInfo);
    传送之 前 这样整一下,接收那儿直接接收就哦了...
      

  5.   

    byte[] AbyStr = System.Text.Encoding.Default.GetBytes(AsendInfo);
    传送之 前 这样整一下,接收那儿直接接收就哦了...
      

  6.   


    该是哪一个就用哪一个,你要看服务器端的文档明确规定了如何编码。大部分明智的人都会写上utf8,因为这最常见。少数人有可能可以写上gb2312,也许他有什么特殊的目的。但是一般来说千万不要使用Default。因为Default就是取当前操作系统的中关于语言的设置,也就是说同一个程序放到英文版和简体中文版windows中结果就不一样了,放到繁体中文版,或者区分台湾和香港,又不一样了。
      

  7.   

    如果使用Default侥幸测试通过,我敢说这个部分体现了测试人员的问题。不是说任何时候都不应该使用Default,该使用Default就使用Default,而不该使用时(比如说要跨机器来统一通讯编码)就不要使用。