WinAPI使用UTF-16LE编码,所以如果我调用一些返回string的WinAPI函数,它将以UTF-16LE编码的forms返回。
所以我正在考虑在我的程序中使用UTF-16LE编码string,并且当通过networking发送数据的时候,我将它转换为UTF-8,另一方面我把它转换回UTF-16LE 。 这样就可以减less发送的数据量。
我不应该这样做吗?
什么是一个明智的方式让服务器侦听客户端连接将会很less(在Linux上的套接字编程)
Python套接字问题:Windows中的socket.MSG_DONTWAIT
是不是struct sockadr_in应该适用于IPv4和IPv6?
非阻塞套接字和发送()
与Windows上的本地主机IPC上的命名pipe道相比,TCP套接字有多慢?
强制插槽断开而不伪造RST,Linux
Linux上的UDP服务器应用程序无法接收来自150多个客户端的数据包
有没有办法获得unix套接字连接的另一端的uid
使用UTF-8编码,您将使用:
1个字节的ASCII字符
U + 0000和U + 07FF之间的Unicode字符为2个字节
如果需要更多的字节
因此,如果您的文本是西文,在大多数情况下,UTF-8的编码可能会比UTF-16LE编码更短:西方字母在U-0000和U-0590之间编码 。
相反,如果您的文本是亚洲的,那么UTF8编码可能会使您的数据显着膨胀。 亚洲字符集超出了U + 7FF,因此至少需要3个字节
在UTF8无处不在的文章中,您可以找到关于文本编码长度的一些(基本)统计信息,以及支持使用UTF8的其他参数。
在我看来,联网的一个方面是UTF8表示在所有平台上都是相同的表示,而UTF16则是LE和BE,具体取决于操作系统和cpu架构。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。