小妹再交求助,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();
试试