8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

Java 中 String 的内部表示是什么?修改版 UTF-8?UTF-16?

Marek H 1月前

132 0

我搜索了Java中String的内部表示,但是我得到的两种材料看起来可靠但不一致。一种是:http://www.codeguru.com/cpp/misc/misc/multi-lingualsupport/article...

我搜索了 Java 中 String 的内部表示,但得到的结果有两种,看起来可靠但不一致。

一是:

http://www.codeguru.com/cpp/misc/misc/multi-lingualsupport/article.php/c10451

上面写着:

Java 使用 UTF-16 作为内部文本表示,并支持对 UTF-8 进行非标准修改以进行字符串序列化。

另一个是:

http://en.wikipedia.org/wiki/UTF-8#Modified_UTF-8

上面写着:

Tcl 也使用与 Java 相同的修改后的 UTF-8[25] 作为 Unicode 数据的内部表示,但对外部数据使用严格的 CESU-8。

修改后的 UTF-8?还是 UTF-16?哪一个是正确的?Java 在内存中为一个字符占用多少字节?

请让我知道哪一个是正确的以及它使用了多少字节。

帖子版权声明 1、本帖标题:Java 中 String 的内部表示是什么?修改版 UTF-8?UTF-16?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Marek H在本站《string》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 虽然文档没有明确保证,但程序员会期望 CharAt 是 O(1)。这在很大程度上排除了使用 UTF-8 等混合宽度编码的可能性,但它确实允许在多个不同的固定宽度编码之间切换的实现。

返回
作者最近主题: