首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

socket编程,recv接收到乱码?解决办法

2012-05-23 
socket编程,recv接收到乱码?recv(client,msg,102400,0)CString strstr.Format(%s,msg)当客户端发的是

socket编程,recv接收到乱码?
recv(client,msg,102400,0);
CString str;
str.Format("%s",msg);
当客户端发的是中文时,str里面有乱码,请问怎么解决

[解决办法]

探讨

引用:

另外你的发送端是怎么写的?

发送端是在IOS下开发的,发送端发送sql语句给服务器,服务器就把sql语句插入数据库。
sql语句是用的 dataUsingEncoding:NSUTF8StringEncoding转换成NSData,再发送

[解决办法]
first convert UTF-8 to widechar, then convert widechar to ANSI. 
here is code snippets converting ANSI to UTF-8 
CString aaa= "abc ";//CP_ACP CP_UTF8 
wchar_t wbuf[128]; 
ZeroMemory(wbuf,sizeof(wbuf)); 
int nret=MultiByteToWideChar(CP_ACP,0,aaa,aaa.GetLength()+1,wbuf,sizeof(wbuf)/sizeof(wbuf[0])); 
if(nret> 0&&nret <sizeof(wbuf)) 

CFile foutput; 
foutput.Open( "c:\\widechar.htm ",CFile::modeCreate|CFile::modeWrite); 
foutput.Write(wbuf,nret*2); 
foutput.Flush(); 
foutput.Close(); 

char uft8buf[1024]; 
BOOL busedefault=false; 
nret = WideCharToMultiByte(CP_UTF8,0,wbuf,nret,uft8buf,sizeof(uft8buf),NULL,NULL); 
if(nret> 0&&nret <sizeof(uft8buf)) 

CFile foutput; 
foutput.Open( "c:\\utf8.htm ",CFile::modeCreate|CFile::modeWrite); 
foutput.Write(uft8buf,nret); 
foutput.Flush(); 
foutput.Close(); 

热点排行