组合字符
与前面的基础字符组合显示的 Unicode 字符。包括变音符号和浊音符号等。
组合字符是不独立显示而与前面的基础字符组合形成单个可见字符的 Unicode 字符。组合用变音符号 (U+0300-U+036F) 是最常见的示例。
例如,拉丁字母"a" (U+0061) 后跟组合用锐音符 (U+0301) 显示为"á"。在日语中,组合用浊音符号 (U+3099) 和组合用半浊音符号 (U+309A) 是示例。Unicode 编程指南详细介绍了这个主题。
由于组合字符的存在,外观相同的字符可能有不同的码点序列。需要 Unicode 规范化 (NFC 组合、NFD 分解) 来统一处理。
在字符计数中,组合字符作为独立码点计数,因此 String.length 与可见字符数不匹配。按字素簇计数才能得到准确结果。文本处理算法书籍提供了更多背景知识。