小妹再交求助,C++转C#遇到问题。
感谢前2天小妹发贴后,得到朋友的解答。因为小妹刚学C#,是新手。希望园里有朋友帮助解决一下。
也是上次的问题,测试后结果不一样的。不知什么回事。
C++
CString strSend="abc测试测试";
 senddata(strSend.GetBuffer(strSend.GetLength()),strSend.GetLength());
int CVC6ClientDlg::senddata(char * buf,int num)
{
    char sendbuf[512];
	memcpy(sendbuf,buf,num);
    sendbuf[num]='\n';
	return SSL_writego(ssl, sendbuf, num+1);
   
}
改成C#
String strSend="abc测试测试";
 byte[] byteSend = Encoding.ASCII.GetBytes(strSend);
  senddata(byteSend, strSend.Length);
protected int senddata(byte[] buf, int num)//此方法转成C#不对
        {
            byte[] sendbuf = new byte[num+1];
            buf.CopyTo(sendbuf, 0);
            sendbuf[num] = (byte)'\n';
         // return SSL_writego(ssl, sendbuf, num+1);
          
            return 0;//只是测试
        } 
结果中sendbuf 是不一样的 请问C#如何修改?
              
------解决方案--------------------Encoding.ASCII.GetBytes
可能是编码
小妹 我C#想转C++呢- -
------解决方案--------------------看不懂c++的,帮顶
------解决方案--------------------看不懂的路过
------解决方案--------------------String?strSend="abc测试测试";
?byte[]?byteSend?=?Encoding.ASCII.GetBytes(strSend);
ASCII 只支持英文半角,支持中文要用 
?byte[]?byteSend?=?Encoding.UTF8.GetBytes(strSend);
------解决方案--------------------Encoding.UTF8.GetBytes();
------解决方案--------------------Encoding.UTF8.GetBytes();
或这个
Encoding.GetEncoding("gb2312").GetBytes();
试试