我从苹果机给windows发送数据,中文的话是乱码,我把utf-8转成gbk好了,但是,若是一次发了很多数据里面有中文有英文,怎么办?有没有处理过这方面问题的大牛说下怎么搞,比较合适

void ConvertUtf8ToGBK(CString&amp,CString strUtf8) 

int len=MultiByteToWideChar(CP_UTF8, 0, (LPCTSTR)strUtf8, -1, NULL,0); 
unsigned short * wszGBK = new unsigned short[len+1]; 
memset(wszGBK, 0, len * 2 + 2); 
MultiByteToWideChar(CP_UTF8, 0, (LPCTSTR)strUtf8, -1, (LPWSTR)wszGBK, len); 
len = WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)wszGBK, -1, NULL, 0, NULL, NULL); 
char *szGBK=new char[len + 1]; 
memset(szGBK, 0, len + 1); 
WideCharToMultiByte (CP_ACP, 0, (LPCWSTR)wszGBK, -1, szGBK, len, NULL,NULL); 
//strUtf8 = szGBK; 
amp=szGBK;
delete[] szGBK; 
delete[] wszGBK; 
}

解决方案 »

  1.   

    跨操作系统网络传输统一使用UTF8就行了。
    UTF8好像在国外挺流行的,protobuf,boost,tinyxml等都是用的UTF8
      

  2.   

    楼主啊,苹果机怎么给window发消息啊,怎么实现的能不能说说,没接触过,
      

  3.   

    socket。呀底层的,我也不太懂调别人写的东西