Java
在2004/2005过渡到UTF-16之前使用了UCS-2。最初选择UCS-2的原因主要是历史原因:
Unipre最初设计为固定宽度的16位字符编码。Java编程语言中的原始数据类型char旨在通过提供可以容纳任何字符的简单数据类型来利用此设计。
UnipreFAQ页面进一步说明了这一点以及UTF-16的诞生:
最初,Unipre被设计为纯16位编码,旨在表示所有现代脚本。(古代的脚本用专用字符来表示。)随着时间的流逝,尤其是在添加了超过14,500个复合字符以与传统集兼容的情况下,很明显16位不足以满足用户需求。由此产生了UTF-16。
正如@wero已经提到的那样,使用UTF-8不能有效地完成随机访问。因此,万事俱备,UCS-2似乎是当时的最佳选择,尤其是在该阶段尚未分配任何补充字符的情况下。然后,这使UTF-16成为最简单的自然进程。



