Java UTF-16编码代码

时间:2011-05-03 20:22:21

标签: java encoding character-encoding utf-16 utf

在java中将Unicode代码点(整数)编码为char数组(Bytes)的函数基本上是这样的:

return new char[] { (char) codePoint };

这只是从整数值到char的转换。

我想知道这个演员是如何实际完成的,这个演员背后的代码是为了从一个整数值转换为一个用UTF-16编码的字符。我尝试在java源代码上查找它,但没有运气。

5 个答案:

答案 0 :(得分:9)

我不确定你在说什么功能。

将有效int代码点投射到char将适用于基本多语言平面中的代码点,这仅仅是因为定义了UTF-16。要转换U + FFFF以上的任何内容,您应该使用Character.toChars(int)转换为UTF-16代码单元。该算法在RFC 2781中定义。

答案 1 :(得分:0)

代码点只是一个映射到一个字符的数字,没有真正的转换。 Unicode代码点以十六进制指定,因此无论codePoint是否为十六进制,都将映射到该字符(或字形)。

答案 2 :(得分:0)

由于char被定义为用Java保存UTF-16数据,所以这就是它的全部内容。 如果输入是int(即它可以表示U + 10000或更高的Unicode代码点),则需要进行一些计算。所有char值都已经是UTF-16。

答案 3 :(得分:0)

Java中的所有char都在内部用UTF-16表示。这只是将整数值映射到char

答案 4 :(得分:0)

此外,char数组在Java平台中已经是UTF-16了。