Java JVM修改的UTF-8中的v格式

Java JVM修改的UTF-8中的v格式,java,utf-8,jvm,Java,Utf 8,Jvm,在JVM规范中,在中,它说明了“2乘以3字节格式”的v格式: 这意味着补充字符由六个字节表示,u、v、w、x、y和z 表4.14。v:1010(位20-16)-1 由于v是8位,这意味着(位20-16)-1必须是4位。-1如何将位20-26从5位缩减到4位 (补充问题:是否有理由说“2乘以3字节”而不是“6字节”?)的范围从U+0000到U+10FFFF 大于U+FFFF的值称为补充码点。它们的二进制表示是uuuu xxxxxxxxxxxxxx(21位),其中uuuu介于00001和10000之

在JVM规范中,在中,它说明了“2乘以3字节格式”的
v
格式:

这意味着补充字符由六个字节表示,u、v、w、x、y和z

表4.14。v:1010(位20-16)-1

由于
v
是8位,这意味着
(位20-16)-1
必须是4位。
-1
如何将
位20-26
从5位缩减到4位

(补充问题:是否有理由说“2乘以3字节”而不是“6字节”?)

的范围从
U+0000
U+10FFFF

大于
U+FFFF
的值称为补充码点。它们的二进制表示是
uuuu xxxxxxxxxxxxxx
(21位),其中
uuuu
介于
00001
10000
之间

在UTF-16中,补充码点由编码,如中所述。也就是说,
uuuu xxxxxxxxxxxxxx
由两个16位字符表示:
110WWWWXXXXXX 110111XXXXXXXXX
,其中
WWWWWW=uuuuu-1

00001≤ 乌乌≤ 10000,因此,
0000≤ WW≤ 1111

现在,修改后的UTF-8将补充代码点编码为两个字符:高代理和低代理。这些代理字符中的每一个都由UTF-8中的3个字节表示。因此,这是一个“二乘三”的数字