相关疑难解决方法(0)

为什么Java char使用UTF-16?

最近我读了很多关于unicode代码点以及它们如何随着时间的推移而演变的事情,并确定我也阅读了http://www.joelonsoftware.com/articles/Unicode.html.

但是我无法找到Java使用UTF-16作为char的真正原因.

例如,如果我的字符串包含1024个字母的ASCII范围charachter字符串.这意味着1024 * 2 bytes它相当于它将消耗的2KB字符串存储器.

因此,如果Java base char是UTF-8,那么它只有1KB的数据.即使字符串具有需要2字节的任何字符串,例如10字符"字符"自然也会增加内存消耗的大小.(1014 * 1 byte) + (10 * 2 bytes) = 1KB + 20 bytes

结果并不是那么明显1KB + 20 bytes VS. 2KB我不会说ASCII,但我对此的好奇心是为什么它不是UTF-8,它只是照顾多字节字符.UTF-16在任何具有大量非多字节字符的字符串中看起来像浪费内存.

这背后有什么好理由吗?

java unicode utf-8 utf-16

14
推荐指数
1
解决办法
3038
查看次数

标签 统计

java ×1

unicode ×1

utf-16 ×1

utf-8 ×1