c++ 网络编程如何向指定的fd中 写中文
通常情况下,网络编程的i/o处理,使用的函数有
ssize_t read(int fd, void *buf, size_t nbyte)
ssize_t write(int fd, const void *buf, size_t nbytes)
按字节一个个的进行传输。
但是通常情况下,中文的一个字占2~3个字节,这样的话可能在传输的过程中,出现乱码的情况。
所以想要请教一下,这种问题应该如何解决呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
首先,tcp保证了传输中的顺序递交和数据正确性的问题,所以不可能导致数据错误。
应该是你服务端和客户端解码问题
我猜你是linux上为服务端,win上为客户端遇到的这样的问题。
你可以通过
这两个命令行来查看编码是否一致。
另外你还要注意大小端的问题。
又不是一个个字节分开的传,是连续的。。一次就是传输你给的字节数。。所以不会出现你说的一个中文3个字节分开传输。。。显示的时候要注意编码,两边的编码要一致,不然也是乱码