Java UTF-16编码代码

| 在Java中,将Unicode代码点(整数)编码为char数组(字节)的函数基本上是这样的:
return new char[] { (char) codePoint };
这只是从整数值到char的转换。 我想知道这种转换是如何实际完成的,该转换背后的代码可以实现从整数值到UTF-16编码字符的转换。我试图在Java源代码上寻找它,但是没有运气。     
已邀请:
我不确定您正在谈论哪个功能。 由于定义了UTF-16,因此将有效的“ 1”代码点转换为“ 2”将适用于基本多语言平面中的代码点。要转换U + FFFF以上的任何值,应使用Character.toChars(int)转换为UTF-16代码单元。该算法在RFC 2781中定义。     
代码点只是映射到字符的数字,没有进行任何实际的转换。 Unicode代码点以十六进制指定,因此您的十六进制codePoint都将映射到该字符(或字形)。     
由于在Java中定义了
char
来保存UTF-16数据,因此仅此而已。仅当输入为
int
(即它可以表示U + 10000或更大的Unicode代码点)时,才需要进行一些计算。所有的
char
值已经是UTF-16。     
Java中的所有“ 2”都以UTF-16内部表示。这只是将整数值映射到
char
。     
而且,在Java平台中,字符数组已经是UTF-16。     

要回复问题请先登录注册