繁体   English   中英

java中基本类型char的值引用哪个Unicode表?

[英]Which Unicode table does the value of primitive type char refer to in java?

我想在Java中找到原始类型char的值的代码表,听说Java在内部使用Unicode。 java中基本类型char的值引用哪个Unicode表?

Oracle文档中所述

创建Java语言规范时,将接受Unicode标准,并且将char原语定义为16位数据类型,其字符的十六进制范围为0x0000至0xFFFF。

由于16位编码支持216(65,536)个字符,不足以定义全世界使用的所有字符,因此Unicode标准已扩展为0x10FFFF,它支持超过一百万个字符。 Java编程语言中字符的定义不能从16位更改为32位,而不会导致数百万个Java应用程序无法正常运行。 为了更正定义,开发了一种方案来处理无法以16位编码的字符。

值在16位范围之外且在0x10000到0x10FFFF范围内的字符称为补充字符,并定义为一对char值。

此处检查unicode字符表。

Java使用UTF-16字符串。 每个字符都是UTF-16方案中的16位代码单元 对于基本多语言平面中的代码 (U + 0000至U + FFFF),值是相同的。 此范围的一部分保留给代理对,允许UTF-16表示高于BMP的值。

要获取任何字符的图表代码点值,可以使用以下代码点方法之一:

public class PrintCodePoints {
  public static void main(String[] args) {
    String test = "e\u0301\uD835\uDD0A\u20AC";
    for (int i = 0; i < test.length(); i++) {
      int codePoint = test.codePointAt(i);
      if (codePoint > 0xFFFF) {
        i++;
      }
      System.out.format("U+%04x%n", codePoint);
    }
  }
}

此代码打印文字字符串“é𝔊€”的代码点值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM