VS2010 , socket, unicode, CString字符串连接字符数组出现乱码

2024-11-30 13:24:06
推荐回答(3个)
回答1:

应该是存在字符集转换的问题他,网络传播是最好使用utf8字符集,到客户端的时候在转换成为unicode,这样的话肯定不会有问题

回答2:

char 是ASCII码吧,2010应该默认是unicode码。这个应该是编码转换的问题。
应该用w_char吧。然后注意用_T()转换

回答3:

考虑到诸多因素,SOCKET通信一般使用的是ASCII编码,因此,使用char数组来接收SOCKET传来的字符是没有什么问题的。

但是,从char数组到CString的转换,需要看你工程里的UNICODE宏定义。如果你使用了UNICODE,那么,就必须有一个窄字符串到宽字符串的转换,一般使用宏A2T就行了。如:
CString sTemp = A2T(szTemp);

同样,在send的时候也要注意这个问题,需要T2A.