send(
_In_ SOCKET s,
_In_reads_bytes_(len) const char FAR * buf,
_In_ int len,
_In_ int flags
);
发现转化成多字节发送,服务端那边就乱码了。。。
send(
_In_ SOCKET s,
_In_reads_bytes_(len) const char FAR * buf,
_In_ int len,
_In_ int flags
);
发现转化成多字节发送,服务端那边就乱码了。。。
已解决,可以用以下方法:
CHAR* EncodingTool::UnicodeToUTF8(const WCHAR* wideStr)
{
char* utf8Str = NULL;
int charLen = -1;
charLen = WideCharToMultiByte(CP_UTF8, 0, wideStr, -1, NULL, 0, NULL, NULL);
utf8Str = (char*)malloc(charLen);
WideCharToMultiByte(CP_UTF8, 0, wideStr, -1, utf8Str, charLen, NULL, NULL);
return utf8Str;
}
1 回答560 阅读✓ 已解决
1 回答647 阅读
579 阅读
为什么要转码?
char *你可以理解为void *,强转一下就行了,接收端接收后强转回去不就得了。对于 socket 而言,就只是字节流而已,没有什么 Unicode 之分。