Java 7的内部字符编码

时间:2012-11-27 03:41:28

标签: java character-encoding ucs2 utf-32

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

  

Java最初使用UCS-2,并在J2SE 5.0中添加了UTF-16补充字符支持。

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

2 个答案:

答案 0 :(得分: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编码的字符串占用更多内存。

答案 1 :(得分:0)

  问:据我所知,当JRE执行Java应用程序时,字符串   将被视为(16位Unicode)字节数组

答:是的

  

问:使用Java的新版本(Java 7),它是什么   内部特征编码?

答:相同

  

问:Java是否有可能开始在内部使用UCS-4?

答:答:我没有听到任何类似的内容

但是,您可以使用“代码点”在Java 5及更高版本中实现UTF-32字符: