【发布时间】:2012-10-28 19:57:00
【问题描述】:
根据Java SE 7 Specification,Java 使用Unicode UTF-16 标准来表示字符。
当将String 想象为一个由 16 位变量组成的简单数组时,每个变量都包含一个字符,生活很简单。
不幸的是,有些代码点 16 位根本不够用(我相信它是所有 Unicode 字符的 16/17)。所以在String 中,这不会造成直接问题,因为当想要使用额外的两个字节 存储其中一个~1.048.576 个字符时,只需在String 中的两个数组位置即可用过。
这对Strings 有效,不会造成任何直接 问题,因为总是可以有额外的两个字节。虽然当涉及到单个变量时,与 UTF-16 编码相比,它具有 16 位的固定长度,但如何存储这些字符,尤其是 Java 是如何做到的它的2 字节“char”类型?
【问题讨论】:
-
请不要滥用反引号。它们仅用于代码。
-
它没有......如果它可以存储一个点,他们会称之为'字符':) String[index] 可能是一个无效字符。更多信息在utf8everywhere.org。
-
@KerrekSB 好吧,我一直用它们来强调或强调似乎最重要或具有高识别价值的单词或短语。但是感谢您让我正确,我会在未来更加注意。
-
@Kierrow:您可以使用斜体和粗体来表示正常和特别强调。对于大多数 SO 帖子来说,这应该足够了! :-)
标签: java variables unicode encoding utf-16