WinAPI使用UTF-16LE编码,因此如果我调用一些返回字符串的WinAPI函数,它将以UTF-16LE编码返回它。
所以我想在我的程序中对字符串使用UTF-16LE编码,当它需要通过网络发送数据时,我将其转换为UTF-8,另一方面我把它转换回UTF-16LE。这样就可以发送更少的数据。
我不应该这样做吗?
答案 0 :(得分:2)
使用UTF-8编码,您将使用:
因此,如果您的文本是西方语言,在大多数情况下,UTF-8可能比UTF-16LE编码更短:西方字母为encoded between U-0000 and U-0590。
相反,如果您的文字是亚洲文,那么UTF8编码可能会显着增加您的数据。亚洲字符集超出U + 7FF,因此需要至少3个字节
在UTF8 everywhere article中,您可以找到有关文本编码长度的一些(基本)统计信息,以及支持使用UTF8的其他参数。
我想到的网络就是UTF8表示在所有平台上都是相同的代表,而对于UTF16,你有LE和BE,这取决于操作系统和CPU架构。