这里将用C++编写socket服务端:C++ Socket 服务端;
用Python编写socket客户端:python Socket 客户端。
1、编码方式区别
C++默认字符串的编码方式为GBK,Python的编码方式默认为utf8。
因此python客户端发送消息时需要进行编解码。
编码:
message = message.encode('gbk')
解码:
data = data.decode('gbk')
2、C++发送中文乱码问题:为避免发送中文乱码,最好将待发送的字符串转换为char*格式,然后进行发送。
std::string res = "C++与python Socket通信注意事项";
char *buff = const_cast<char *>(res.c_str());
int iSend = send(socketConn, buff1, strlen(buff), 0);

本文详细介绍了在C++和Python中使用Socket进行通信时遇到的编码差异问题。C++默认使用GBK编码,而Python默认采用UTF-8。因此,Python客户端在发送消息时需要进行GBK编码,接收时再解码。同时,针对C++发送中文可能出现的乱码情况,建议将字符串转换为char*格式发送。本文旨在帮助开发者解决跨语言Socket通信中的编码问题。
258

被折叠的 条评论
为什么被折叠?



