字符可以代表所有Unicode代码点吗?

用户705414:

由于Java char是16位长,我想知道它如何表示完整的unicode代码点?它只能代表65536个代码点,对吗?

乔恩·斯基特(Jon Skeet):

是的,Java字符是UTF-16代码单元。如果您需要在基本多语言平面之外表示Unicode字符,则需要在中使用代理对java.lang.StringString类提供了各种方法来工作,完整的Unicode代码点,如codePointAt(index)

Java语言规范的第3.1节开始

Unicode标准最初设计为固定宽度的16位字符编码。此后已对其进行了更改,以允许其字符表示需要超过16位的字符。合法代码点的范围现在是U + 0000到U + 10FFFF,使用十六进制U + n表示法。代码点大于U + FFFF的字符称为补充字符。为了仅使用16位单元表示完整的字符范围,Unicode标准定义了一种称为UTF-16的编码。在这种编码中,补充字符表示为成对的16位代码单元,第一个从高代理范围(U + D800到U + DBFF),第二个从低代理范围(U + DC00到U) + DFFF)。对于U + 0000到U + FFFF范围内的字符,代码点的值和UTF-16代码单元的值相同。

Java编程语言使用UTF-16编码以16位代码单元的顺序表示文本。一些API(主要在Character类中)使用32位整数将代码点表示为单独的实体。Java平台提供了在两种表示形式之间进行转换的方法。

有关更多信息,请参阅Character文档

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

获取代码点的所有Unicode别名

dplyr可以从as.character字符串中删除所有点吗?

我可以检查Unicode代码点是否可以在Android下显示吗?

C获取字符的Unicode代码点

根据字符串的位置,阿拉伯字符是否具有不同的Unicode代码点?

遍历所有Unicode字符

从表示Unicode代码点的String中获取Unicode字符?

在字符串中附加带有相应字形的 unicode 代码点

是否可以在不更改所有电子邮件提供商后端的任何代码的情况下为“at sign”添加另一个 Unicode 字符?

ptrdiff_t可以代表指向同一数组对象的元素的所有指针减法吗?

unicode字符内可以有一个ascii控制字符吗

Android Studio显示所有红色错误,但是所有代码都可以吗?

如果一个代码点序列形成一个Unicode字符,那么该序列中的每个非空前缀也都形成一个有效字符吗?

需要代码来删除vb6中的所有unicode字符

有人可以解释如何使用序列点对C代码段进行评估吗?

在zsh中获取字符的Unicode代码点

如何使Python字符串包含unicode代码点?

如何遍历Java字符串的unicode代码点?

使用Python获取字符的Unicode代码点

使用Python获取字符的Unicode代码点

在Go中将Unicode代码点转换为文字字符

Java将unicode代码点转换为字符串

.NET字符串对象和无效的Unicode代码点

如何获取Java中字符的Unicode代码点?

我可以为路由中的所有入口点创建默认的OPTIONS方法指令吗?

我可以将所有点文件从〜移动到〜/ .config吗?

有效的Unicode字符串可以包含FFFF吗?Java / CharacterIterator是否损坏?

Python regex:带有re.ASCII的模式仍然可以匹配unicode字符吗?

从代码点跟踪所有语句