如何在Java中编写3字节的unicode文字



我想在Java中编写unicode literal U+10428。http://www.marathon-studios.com/unicode/U10428/Deseret_Small_Letter_Long_I

我尝试使用'u10428',但它无法编译。

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

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

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

您的示例代码点U+10428"uD801uDC28"

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

引用自文档:

3.10.5字符串字面值

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

最新更新