c++ 网络编程如何向指定的fd中 写中文

发布于 2022-09-11 17:09:54 字数 237 浏览 28 评论 0

通常情况下,网络编程的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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

妄想挽回 2022-09-18 17:09:54

首先,tcp保证了传输中的顺序递交和数据正确性的问题,所以不可能导致数据错误。

应该是你服务端和客户端解码问题
我猜你是linux上为服务端,win上为客户端遇到的这样的问题。
你可以通过
linux

win
这两个命令行来查看编码是否一致。
另外你还要注意大小端的问题。

花间憩 2022-09-18 17:09:54

又不是一个个字节分开的传,是连续的。。一次就是传输你给的字节数。。所以不会出现你说的一个中文3个字节分开传输。。。显示的时候要注意编码,两边的编码要一致,不然也是乱码

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文