变音符号

添加在字符上方或下方的辅助符号。表示发音差异,如重音符号和变音符号。

变音符号是添加在字符上方、下方或旁边的辅助符号。常见示例包括法语重音符号 (é, è, ê)、德语变音符号 (ä, ö, ü) 和西班牙语波浪号 (ñ)。

在 Unicode 中,带变音符号的字符可以用两种方式表示:"预组合字符" (NFC) 或"基础字符 + 组合字符" (NFD)。例如"é"可以是 U+00E9 (预组合) 或 U+0065 + U+0301 (分解形式)。字符编码技术书籍详细介绍了这个主题。

这种双重表示在字符串比较中会造成问题。外观相同的字符可能有不同的字节序列,需要 Unicode 规范化 (NFC/NFD) 来统一。

在字符计数中,NFD 形式的文本将基础字符和组合字符分别计数,导致计数高于可见字符数。多语言编程指南提供了更多背景知识。