LINUX网络编程TCP服务器 客户端 有乱码怎么解决?

LINUX网络编程TCP服务器 客户端 有乱码怎么解决?,第1张

解决办法:
1在客户端n=read(socketfd,buff,1023);代码之前加上memset(buff,0,sizeof(buff));,这是保证收到较短数据(使用TCP你不能保证每次接收的数据和发送的数据时等长的),打印也是正确的;
2将客户端buff[n+1]+='\0';修改为buff[n]='\0';,这是因为n是下标,已经是最后一个位置了;
3将服务器端buff[n+1]+='\0';修改为buff[n]='\0';,这是因为n是下标,已经是最后一个位置了,而且和第2)一样,那个加号也要去掉,应该是笔误吧;
4最大的问题,将服务器端write(connectfd,buff,1023);,你怎么能够保证收到1023个字符呢?也应该将while中条件移出作为WHILE中的一条语句,而且加上前面所述的memset语句,而将这里的write(connectfd,buff,1023);修改为write(connectfd,buff,strlen(buff))。
祝共同进步!

linux下wget中文编码导致的乱码现象,由于所打开的文件采用的汉字编码方式不同,一般有utf-8
和gb2312两种编码方式,修改系统的配置文件/etc/vimrc即可:
vim /etc/vimrc
#加入下面语句即可:
set fileencodings=utf-8,gb2312,gbk,gb18030 //支持中文编码
set termencoding=utf-8
set fileformats=unix
set encoding=prc


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10581499.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-09
下一篇2023-05-09

发表评论

登录后才能评论

评论列表(0条)

    保存