求教怎么解决因字符集不同产生的乱码有关问题

求教如何解决因字符集不同产生的乱码问题?
求教怎么解决因字符集不同产生的乱码有关问题

求教怎么解决因字符集不同产生的乱码有关问题


void CServerSocket::OnReceive(int nErrorCode)
{
// TODO:  在此添加专用代码和/或调用基类

CAsyncSocket::OnReceive(nErrorCode);

char szTemp[30];

int n = Receive(szTemp , 30 );
szTemp[n] = '\0';

CString sTemp ;

sTemp.Format( _T("收到:%s") , szTemp);
((CChatServerDlg*)(AfxGetApp()->m_pMainWnd))->m_ListWords.AddString( sTemp );
((CChatServerDlg*)(AfxGetApp()->m_pMainWnd))->m_ListWords.SetTopIndex(
((CChatServerDlg*)(AfxGetApp()->m_pMainWnd))->m_ListWords.GetCount()-1 );

}

------解决方案--------------------
Client与server工程都用同一种字符集编译。多字节或unicode
------解决方案--------------------
如果是字符集问题导致乱码,一个字都不会对,既然前几个字对了,那就是发送或者接收数据不全
试了一下果然如此,“解决方찀쳌理”,中间那两个符号是0x00 0xcc 0xcc 0xcc,就是说只收到了六个字节,第七个字节被赋了0但unicode每个字符是两字节,第八个字节依然是栈中VS调试模式下自动填充的0xcc,结果就这样了