Unicode 如何判断代码点是否是支持的图示符(例如一些重音)与独立的图示符

Unicode 如何判断代码点是否是支持的图示符(例如一些重音)与独立的图示符,unicode,Unicode,熟悉Unicode标准的人能否解释一下Unicode代码点\uaaaabbb是支持graheme还是独立graheme的确切机制 比如说 \U+0045\U+0301一起被呈现为,字符串长度(1)由#个字表示 \U+0301单独呈现为́,字符串长度(1)由#个字表示 程序如何知道何时忽略字符串长度中的重音\U+0301(和其他函数),并将其作为单个图形单元与\U+0045一起处理?何时不忽略 是否存在某种编码方式?是否每个代码点都是硬编码的,具有独立或支持的属性,并且所有支持都是简单地与最新

熟悉Unicode标准的人能否解释一下Unicode代码点
\uaaaabbb
是支持graheme还是独立graheme的确切机制

比如说

  • \U+0045\U+0301
    一起被呈现为
    ,字符串长度(1)由#个字表示
  • \U+0301
    单独呈现为
    ́
    ,字符串长度(1)由#个字表示
程序如何知道何时忽略字符串长度中的重音
\U+0301
(和其他函数),并将其作为单个图形单元与
\U+0045
一起处理?何时不忽略

是否存在某种编码方式?是否每个代码点都是硬编码的,具有独立或支持的属性,并且所有支持都是简单地与最新的先前独立合并的?还是有更具活力的事情发生


这种行为背后的确切潜在机制是什么?

字符属性
Grapheme\u Cluster\u Break
对此负责。每个字符都属于一个特定的类别,这些类别之间的各种交互决定了任何给定字符串中的字形边界。通常,属性值为
Extend
space\u Mark
ZWJ
的字符与其前一个字符组合在一起,但完整的规则集要比这复杂得多。您可以在中找到完整的规格

中提供了所有属性值指定的机器可读版本,您还可以使用获取特定类别中所有字符的列表,例如通过输入
[:Grapheme\u Cluster\u Break=Extend://code>

编辑:以下是一些示例:

  • U+0301组合急性重音的值为
    Extend
    。根据规则,具有此值的字符将始终与任何前面的字符(例如字母x)形成一个组合的字形:“x”+“́”=“x””,因此x将被计为一个单位。几乎所有被描述为组合标记的字符都具有此属性,您可以向集群添加任意多个组合标记,因为它们都与前面的字符粘合在一起:x̧̥̖̄͑̕͘
  • 韩国语脚本是用音节块书写的,音节块由两个或三个单独的字母组成,每个字母称为jamo。U+1100韩国语CHOSEONG KIYEOK的值为
    L
    (代表“领先的jamo”),U+1161韩国语JUNGSEONG A的值为
    V
    (代表“元音jamo”)。该规则规定,前导jamo后面跟一个元音jamo应该构成一个单位,所以序列U+1100 U+1161将是一个单一的字素簇:'ᄀ’ + ‘ᅡ’ = ‘가’.
  • U+270A凸起的拳头具有值
    E_Base
    (表情修饰语Base),U+1F3FD表情修饰语FITZPATRICK TYPE-4具有值
    E_修饰语
    (表情修饰语)。规则规定,表情修饰语基数后跟表情修饰语应视为一个图形单位:'✊’ + ‘ 字符属性
    Grapheme\u Cluster\u Break
    对此负责。每个字符都属于一个特定的类别,这些类别之间的各种交互决定了任何给定字符串中的字形边界。通常,属性值为
    Extend
    space\u Mark
    ZWJ
    的字符与其前一个字符组合在一起,但完整的规则集要比这复杂得多。您可以在中找到完整的规格

    中提供了所有属性值指定的机器可读版本,您还可以使用获取特定类别中所有字符的列表,例如通过输入
    [:Grapheme\u Cluster\u Break=Extend://code>

    编辑:以下是一些示例:

    • U+0301组合急性重音的值为
      Extend
      。根据规则,具有此值的字符将始终与任何前面的字符(例如字母x)形成一个组合的字形:“x”+“́”=“x””,因此x将被计为一个单位。几乎所有被描述为组合标记的字符都具有此属性,您可以向集群添加任意多个组合标记,因为它们都与前面的字符粘合在一起:x̧̥̖̄͑̕͘
    • 韩国语脚本是用音节块书写的,音节块由两个或三个单独的字母组成,每个字母称为jamo。U+1100韩国语CHOSEONG KIYEOK的值为
      L
      (代表“领先的jamo”),U+1161韩国语JUNGSEONG A的值为
      V
      (代表“元音jamo”)。该规则规定,前导jamo后面跟一个元音jamo应该构成一个单位,所以序列U+1100 U+1161将是一个单一的字素簇:'ᄀ’ + ‘ᅡ’ = ‘가’.
    • U+270A凸起的拳头具有值
      E_Base
      (表情修饰语Base),U+1F3FD表情修饰语FITZPATRICK TYPE-4具有值
      E_修饰语
      (表情修饰语)。规则规定,表情修饰语基数后跟表情修饰语应视为一个图形单位:'✊’ + ‘你能举几个例子,这样你刚才说的话更容易形象化吗?我在回答中添加了一些例子。你能举几个例子,这样你刚才说的话更容易形象化吗?我在回答中添加了一些例子。