在unicode 编码文式下, 我通过InternetWriteFile发送数据到Server,当数据为中文对方接收不到.为什么啊............ 发送时我把数据转成了UTF8了..

解决方案 »

  1.   

    谢谢两位, 如果转成多字节(源字串为wstring => unicode )对方可能收得到非中文字串,但中文收不到,
    wstring fieldValue;
    ....
    strTemp = toNarrowString( fieldValue.data(), fieldValue.size() );
      if ( !InternetWriteFile( hRequest, strTemp.data(), (DWORD)strTemp.size(), &dwBytesWritten) ) { ... } 而如果我转成UTF8 连英文都收不到数据
     strTemp = toNarrowString( fieldValue.data(), fieldValue.size() ); 
      
     TCHAR pszString[500];
     wcscpy( pszString, fieldValue.data() );
      int nWide =_tcslen( pszString );
      int nByte = WideCharToMultiByte( CP_ACP, 0, pszString, nWide, NULL, 0, NULL, NULL );
      LPSTR pszByte = new CHAR[ nByte + 1 ];
      WideCharToMultiByte( CP_UTF8, 0, pszString, nWide, pszByte, nByte, NULL, NULL );
      
      if ( !InternetWriteFile( hRequest, pszByte,, (DWORD)strlen( pszByte), &dwBytesWritten) )
      { ... }