检查UTF-16和UTF-8的属性,我找不到任何理由偏爱UTF-16。
但是,签出Java和C#,看起来那里的字符串和字符默认为UTF-16。我以为这可能是出于历史原因,或者出于性能原因,但找不到任何信息。
谁都知道为什么这些语言选择了UTF-16?我也有任何正当理由这样做吗?
编辑:同时,我还发现了this answer,它似乎很有意义,并且具有一些有趣的链接。
与UTF-8(通常需要3个字节)相比,东亚语言通常需要较少的UTF-16存储空间(2个字节足以存储99%的东亚语言字符)。]
当然,对于西方的lanagues,UTF-8通常较小(1个字节而不是2个字节)。对于HTML之类的混合文件(其中有很多标记),它的功能很多。
为用户模式应用程序处理UTF-16比处理UTF-8容易[[略]
,因为代理对的行为几乎与组合字符的行为相同。因此,通常可以将UTF-16作为固定大小的编码进行处理。