Unicode兼容字符

✍ dations ◷ 2025-03-06 12:02:14 #Unicode

当讲解和谈论统一码和UCS时,经常提到“兼容字符”这个字眼。兼容字符是指统一码联盟主张不要使用的图像式字符,正如统一码联盟所说:

若不是为了与其他标准间兼容和能够双向对应转换,就不会在统一码中编码的字符。

然而,其定义实在远比这话语有更深层和复杂的意味。每个字符都有一个标准分解(canonical decomposition)的属性,可是大部分字符这个属性的值是这个字符自身,但超过五千个字符的属性的值不是该字符自身。这个属性值能将兼容字符映射到一个或多个的其他的非兼容字符,并借此定义这五千多个字符为统一码中的兼容字符。指定某字符为兼容字符的理由各异,下面有更详细的说明。“分解”这个用语有时会令人感到困惑,因为有些字符“分解”后还是单个字符的形态,这时该字符的分解值就是另一个相等或近似相等的字符。兼容字符与其非空值的标准分解(语义上)是确切等价的。

如果一个兼容字符可以用多个分解序列表示,那么采用了(canonical order)的序列是该字符的。例如,ộ,有两种分解序列:(U+006F LATIN SMALL LETTER O) (U+0302 COMBINING CIRCUMFLEX ACCENT) (U+0323 COMBINING DOT BELOW)或者 (U+006F LATIN SMALL LETTER O) (U+0323 COMBINING DOT BELOW)(U+0302 COMBINING CIRCUMFLEX ACCENT),两个附加符号出现在分解序列中的位置是可交换的。

Unicode的另一个概念兼容性分解(compatibility decomposition),是把一个兼容字符映射为一个或多个的其他的非兼容字符。但兼容字符与兼容性分解可能会有语义(如排版格式上)的损失。例如上角标数字字符⁴与普通的数字字符4。

Unicode的所有(precomposed character)都是兼容字符。即所有预组合字符都能够用其他字符或字符序列来表示。因此的总是存在。具有不同于自身且不为空值的属性值的字符,称为(canonical composite)。

根据兼容分解属性的值,可将统一码的 5,402 个字符分成 17 逻辑分类,并赋予其关键字。具有兼容分解但没有关键字的字符被称作,这些字符并不是兼容字符。兼容可分解字符的关键字包括:<initial>、<medial>、<final>、<isolated>、<wide>, <narrow>、<small>、<square>、<vertical>、<circle>、<noBreak>、<fraction>、<sub>、<super>和 <compat>。这些关键字提供了一些消息:包含兼容字符和它的兼容分解字符序列。兼容字符可分为以下三类:

因为这些语义上不同的字符有可能会使用相似的字形,文字处理软件应该向用户指示出其可能的混淆。当比较和排序文本字符串时,同一字符的不同字形或格式化文本的不同版本不应该改变文本处理结果。例如,软件用户可能会困惑,在查找一页中的大写字母“I”时,软件无法找到在视觉上相似的罗马数字“Ⅰ”(二者是,但不是)。

对于遵循统一码标准的文字处理和显示软件来说,有些兼容字符是不必要的。这些包含:

譬如,罗马数十二(“Ⅻ”:U+216B)可以分解成一个罗马数十(“Ⅹ”:U+2169)和两个罗马数一 (‘Ⅰ’: U+2160)。Unicode认为字符序列'U+2169 U+2160 U+2160'是否被组合为单个字符'Ⅻ',这是文本绘制软件要处理的问题。

如 Å(U+00C5),统一码倾向视为两个分开的字符,一个拉丁字母 A (“Latin letter A”)结合一个“Combining Ring Above”(U+030A)。

总结而言,上述的预组合的字符的使用是不必要的,应该用普通字符的序列来表示这些预组合的字符;由遵从Unicode规范的字体或者文本绘制软件来决定选用哪个字形。

Unicode字符集(即UCS), Unicode字符的属性、Unicode算法为文本处理软件实现提供了所需的一切来适当地绘制处于状态的字符。因此那些变成了冗余与不必要。字符集中的存在导致了文本处理时额外的代价用于正确地比较、排序(参见)。此外,并没有提供补充的或不同的语义。也没有提供绘制时视觉上的不同,如果文本布局与字体遵循Unicode规范。也不是与其他字符集往返转换所需要的,因为可以把一个字符集的分解字符序的列来映射到另一字符集的预组合的字符。 上下文中字形选择,如阿拉伯字母可以根据它在单词内的位置而映射到传统字符集的具有特定字形的某个字符上。

为了处理兼容字符,文本软件必须遵从几个Unicode协议。软件必须能够:

Unicode的5,402个兼容字符中,上述这些不应该使用在文本中的字符共计3,779个。这包括所有具有关键字 <initial>、<medial>、<final>、<isolated>、<wide>, <narrow>、<small>、<square>、<vertical>、<fraction>的兼容字符。还包括大多数具有<compat>关键字的兼容字符(例外情况是有<compat>关键字的被封闭的字母数字、被封闭的象形文字、以及下文所提及)

用于格式化文本的兼容字符,不是Unicode与UCS所考虑的目标。格式化文本所用的兼容字符,可能与普通字符在语义上有出入。例如,作为上角标的数字4,与普通字符数字4,可能语义上不完全等价。

格式化文本兼容字符包括:

格式化文本兼容字符共有1,451个,包括所有具有关键字<circle>与<font>(除了下文列出3个语义不同的例外),11个空格符的变种具有关键字<compat>,具有关键字<superscript>或<subscript>的定义在基本多语言平面的“上标及下标”块中的字符。 定义在U+2100至U+214F定义的Letterlike Symbols块中的字符,都是具有字体格式的兼容字符。

Unicode对于用于科学或数学的希伯来字母、希腊字母符号,作为兼容字符定义。如:

6个作为度量单位的兼容字符,Unicode建议使用其等价分解的字符序列:

Unicode规定了22个类似字母的兼容字符。

一些语言中,语义与字形的位置有关的字符,共计130个。

罗马数字:

Unicode编码空间的几个字符块,都是或大部分是兼容字符。

但是在“CJK Compatibility Ideographs”块中,包含一些不是兼容字符的字符:

还有一个字符U+FA23“﨣”与U+27EAF“�”重复定义。

类似情况在希伯来语、阿拉伯语也有。

统一码要求软件在进行比较或校正文句时,需要先经过兼容分解,这个过程称作规范化。这是做一些相似运算时所必须的动作,如当一个用户进行“不区分大小写”或“不区分附加符号的字母”的搜索时。典型的规范化是指不会改变底层存储的信息(无损)。然后,有些软件可能会造成永久的改变,如在文件内容中删除标准的或非标准的兼容字符(有损)。

相关

  • 亮氨酸亮氨酸(英文:Leucine,简写为 Leu 或 L)是二十种基本氨基酸的其中一种,和异亮氨酸互为同分异构体。在营养学上,亮氨酸是人体的必需氨基酸。亮氨酸是在蛋白质内最常出现的氨基酸,而且
  • 波士顿新英格兰波士顿(英语:Boston)为美国马萨诸塞联邦(英语:Commonwealth (U.S. state))首府,占地面积 48平方英里(124 km2),2018年居民总数为694,583位,是马萨诸塞乃至新英格兰地区人口最
  • 标准模型在粒子物理学里,标准模型(英语:Standard Model,SM)是描述强力、弱力及电磁力这三种基本力及组成所有物质基本粒子的理论,属于量子场论的范畴,并与量子力学及狭义相对论相容。到目前
  • 大气甲烷大气甲烷即大气中存在的甲烷。因为其为最具潜力的温室气体故近来受到人们的关注。其100年全球暖化潜势为29,即在接下来的100年中,其单位质量所能产生的温室效应为二氧化碳的29
  • 贝塞斯达贝塞斯达(Bethesda)是位于美国马里兰州蒙哥马利县的一个未成建制的自然聚居区,人口55,277(2000年),其中白人占85.86%、亚裔美国人占7.92%、非裔美国人占2.67%。华盛顿地铁红线在此
  • 汤姆·基博尔樱井奖 休斯奖章 卢瑟福奖 法拉第奖汤姆·基博尔(英语:Tom Kibble,1932年12月23日-2016年6月2日),英国物理学家,英国皇家学会院士,英国伦敦帝国学院布莱克特实验室(Blackett Labora
  • 卡奔塔利亚湾卡奔塔利亚湾(英语:Gulf of Carpentaria)是澳大利亚北部的一个海湾,三面环陆,北面是阿拉弗拉海(一个在澳大利亚与新几内亚之间的水体)。从地质学角度来说,卡奔塔利亚湾相当年轻,在上
  • 斯特凡·恩德利歇斯特凡·恩德利歇(全名斯特凡·拉迪斯劳斯·恩德利歇 德语:Stephan Ladislaus Endlicher)(1804年6月24日-1849年3月28日),奥地利植物学家、古钱币研究专家和汉学家。他出生于布拉迪
  • Hydrastine北美黄连碱(Hydrastine)是一种生物碱,分子式C21H21N1O6,1851年由Alfred P. Durand发现。其水解得白毛莨分碱(英语:hydrastinine)的反应在1910年代曾为拜耳公司合成止血药的一项专利
  • 瓢蟹总科瓢蟹总科(Carpilioidea)是短尾下目下的一个总科,下含唯一的现存科瓢蟹科和另外三个已灭绝科。 按现在的地理环境,其分布位于印度洋-太平洋海域及包括加勒比海在内的西大西洋。