BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #28604同步于 2009/9/17
CPP机器人发帖

WidebyteToMultiByte使用问题

youziboy
2009/9/17镜像同步0 回复
客户端和服务器端都是用了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个字节? 请指点!
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。