8

我想用 Java 编写 unicode 文字 U+10428。 http://www.marathon-studios.com/unicode/U10428/Deseret_Small_Letter_Long_I

我尝试使用 '\u10428' 并没有编译。

4

1 回答 1

16

因为当人们认为 64K 对每个人都足够时,Java 完全采用了 unicode(以前从哪里听说过?),他们从 UCS-2 开始,后来升级到 UTF-16。

但他们从不费心为 BMP 之外的 unicode 字符添加转义序列。

因此,您唯一的办法是手动重新编码为 UTF-16 代理对并使用两个 UTF-16 转义。

您的示例代码点U+10428"\uD801\uDC28".

我使用这个网站进行重新编码:https ://rishida.net/tools/conversion/

从文档中引用

3.10.5 字符串文字

字符串文字由用双引号括起来的零个或多个字符组成。字符可以用转义序列(第 3.10.6 节)表示 - 一个转义序列用于 U+0000 到 U+FFFF 范围内的字符,两个转义序列用于 U+010000 到范围内字符的 UTF-16 代理代码单元U+10FFFF。

于 2014-07-08T14:03:20.870 回答