Java Unicode 编码

2022-09-01 01:58:25

Java 是 2 个字节(最大大小为 65,536),但有 95,221 个 Unicode 字符。这是否意味着您无法在 Java 应用程序中处理某些 Unicode 字符?char

这是否归结为您正在使用的字符编码?


答案 1

如果您足够小心,您可以处理所有这些问题。

Java是一个UTF-16代码单元。对于代码点> 0xFFFF的字符,它将用 2 s(代理项对)进行编码。charchar

请参阅 http://www.oracle.com/us/technologies/java/supplementary-142654.html,了解如何在 Java 中处理这些字符。

(顺便说一句,在 Unicode 5.2 中,1,114,112 个插槽中有 107,154 个分配的字符。


答案 2

Java 使用 UTF-16。单个 Java 只能表示基本多语言平面中的字符。其他字符必须由两个 s 的代理项对表示。这反映在诸如 String.codePointAt() 之类的 API 方法中。charchar

是的,这意味着当与基本多语言平面之外的字符一起使用时,许多Java代码会以某种方式中断。


推荐