java - Java 7 的内部字符编码

标签 java character-encoding ucs2 utf-32

据我所知,当JRE执行一个Java应用程序时, 该字符串在内部将被视为 USC2 字节数组。 在 wikipedia ,可以找到如下内容。

Java originally used UCS-2, and added UTF-16 supplementary character support in J2SE 5.0.

随着 Java 的新发布版本(Java 7), 它的内部字符编码是什么?
Java 是否有可能在内部开始使用 UCS-4?

最佳答案

Java 7 仍然在内部使用 UTF-16 ( Read the last section of the Charset Javadoc ),并且不太可能更改为 UCS-4。我会给你两个理由:

  1. 从 UCS-2=>UCS-4 进行更改很可能意味着他们必须将 char 原语从 16 位类型更改为 32 位类型。回顾过去 Sun/Oracle 对向后兼容性的重视程度,这样的改变是不太可能的。
  2. 在大多数情况下,UCS-4 比 UTF-16 编码的字符串占用更多内存。

关于java - Java 7 的内部字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13577049/

相关文章:

java - 在调试 Java 代码时,@ 在 {Instance@789} 或 "SomeThread"@321 : RUNNING? 等语句中的含义是什么

java - Android:另一个线程导致 UI 无响应?

php - 将 UTF-8 格式的 HTML 实体转换为 SHIFT_JIS

python - 解码 Unicode 字符串;这是什么意思,我该如何避免呢?

java - 在 UCS-2 Little Endian、Java 中写入文本文件

java - 具有终止条件的递归 Java

mysql - 如何控制表单中的字符编码是否正确存储了法语口音

perl - 使用 Perl 将数字十六进制格式的 UCS2(未知 LE 或 BE)转换为 UTF-8

mysql - 如何将 UCS-2 Little Endian 编码的文件上传到 UTF-8 格式的 Mysql 表中

java - BaseAdapter OnItemClickListener 从未被调用