2 it newbies IT_newbies 于 2015.07.13 09:45 提问

Java与C#进行socket通讯 出现乱码 怎么办
byte[] buffer=tf.getText().getBytes();//tf是一个文本框控件
        try {
            OutputStream out = socket.getOutputStream();
            out.write(buffer, 0, buffer.length);
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
..............................java客户端发送部分
  byte[] buffer = new byte[BufferSize];
     NetworkStream streamToClient = remoteClient.GetStream();
            int bytesRead = streamToClient.Read(buffer, 0, BufferSize);

            string msg = Encoding.Unicode.GetString(buffer, 0, bytesRead);
                            TextBox1.Text=msg;

...........................................C#接收部分
请问是不是应该在string msg = Encoding.Unicode.GetString(buffer, 0, bytesRead);这句话上做些修改就行了

2个回答

guwei4037
guwei4037   Ds   Rxr 2015.07.13 09:55
已采纳

java发送时指定一下UTF-8编码,C#接收时也指定一下UTF-8编码。

http://blog.csdn.net/mecho/article/details/7342654

acuiping
acuiping 应该是编码不一致导致的
2 年多之前 回复
jamejoe
jamejoe   2015.07.13 09:57

出现乱码原因挺多的,可能是编码方式,也可能是接收方式或者解析方法问题,根据你自己的数据格式判定吧

Csdn user default icon
上传中...
上传图片
插入图片