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;
}
3 回答1.5k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
2 回答563 阅读✓ 已解决
1 回答2.1k 阅读
1 回答518 阅读✓ 已解决
3 回答1.2k 阅读
为什么要转码?
char *
你可以理解为void *
,强转一下就行了,接收端接收后强转回去不就得了。对于 socket 而言,就只是字节流而已,没有什么 Unicode 之分。