Mat*_*ens 13 unicode terminology grapheme combining-marks
在Unicode中"组合字符"和"字形扩展器"之间有什么区别?
就我所知,他们似乎做了同样的事情 - 尽管一组字形扩展器比组合字符组大.我在这里显然遗漏了一些东西.为什么区别?
实际使用中的区别在于,组合字符被定义为通用类别,用于字符的粗略分类,而字素扩展器主要用于UAX #29 文本分割。
编辑:既然你提供了赏金,我可以详细说明一下。
组合字符是不能用作独立字符但必须与另一个字符组合的字符。它们用于定义组合字符序列。
Unicode 3.2中引入了字素扩展器,用于Unicode 技术报告 #29:文本边界(当时处于提议状态,现在称为Unicode 标准附件 #29:Unicode 文本分段)。主要用途是定义字素簇。字素簇基本上是用户感知的字符。根据 UAX #29:
字素簇边界对于整理、正则表达式、UI 交互(例如鼠标选择、箭头键移动、退格)、垂直文本分割、首字母样式边界识别以及计算文本中的“字符”位置很重要。
主要区别在于字素扩展器不包括大部分间距标记(该组实际上小于组合字符组)。大多数间距标记是亚洲文字的元音符号。在这些脚本中,元音有时是通过修改辅音字符来书写的。如果这种修改占用了水平空间(间距标记),它曾经被视为一个单独的用户感知字符,并形成一个新的(遗留)字素簇。在 UAX #29 的后续版本中,这一点有所改变,并引入了扩展的字素簇,其中大多数但不是所有的间距标记不会破坏簇。
我认为标准中的关键句子是:“可以将字素扩展器主要视为应用于另一个间距字符上方或下方的那种非间距图形标记。” 另一方面,组合字符还包括应用于left 或 right 的间距标记。不过,也有一些例外(请参阅属性 Other_Grapheme_Extend)。
U+0995 孟加拉字母 KA :
U+09C0 孟加拉语元音符号 II(组合字符,但没有字素扩展符):
两者的结合:
这是由两个传统字素簇组成的单个组合字符序列。元音符号不能单独使用,但它仍然算作遗留字素簇。例如,文本编辑器可以允许将光标放在两个字符之间。
像这样不扩展字素的组合字符有 300 多个,不组合但扩展字素的字符有 4 个。
归档时间: |
|
查看次数: |
1776 次 |
最近记录: |