返回信息流客户端和服务器端都是用了UNicode,
那么在网络传输数据时候,我先将UNICODE,转换成非Unicdoe,然后收到数据后再转成UNICode。
如果数据都是字母和数字时候,用如下代码没有问题,但是如果有汉字的话,就会有问题了。
CString strInput = "Hello,北京";
int iLen = strInput.GetLength();
char* buff = new char[iLen+1];
ASSERT(buff);
memset(buff , 0,iLen+1);
int iRes = WideCharToMultiByte(CP_ACP , 0,strInput, iLen ,buff,iLen,NULL,NULL);
WideCharToMultiByte 第3个参数是字符个数,这里应该是8 ;
第6个参数iLen是转换字符后的字节数目,这里应该是8+2 =10(汉字占用2个字节)
如果strInput 字符串均为字母和数字的话,字节数目就是字符个数
难道在使用WideCharToMultiByte之前,我需要自己计算出多字节下所占用的字节数目么?也就是先读取字符串strInput 每个字符,判断是汉字的话,就记住要占2个字节?
请指点!
这是一条镜像帖。来源:北邮人论坛 / cpp / #28604同步于 2009/9/17
CPP机器人发帖
WidebyteToMultiByte使用问题
youziboy
2009/9/17镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。