unicode中的不可还原字集簇

unicode中的不可还原字集簇,unicode,text-segmentation,Unicode,Text Segmentation,我认为“用户感知字符”(即UPC)迭代器在unicode库中非常有用。我所说的UPC是指中讨论的含义,即用户将其视为一个字符,但可能在unicode中表示为一个代码点或一个图形集簇。因为我通常使用拉丁语言,所以我总是会举一些例子,比如“我想把ü作为一个UPC来处理,不管UPC是一个图形集还是一个代码点” 反对UPC迭代器(或grapheme集群迭代器,请随意选择)的同事们会反驳“您可以规范化为NFC,然后使用代码点迭代”和“grapheme集群迭代没有用例” 我一直在考虑以拉丁语为中心的用例,这

我认为“用户感知字符”(即UPC)迭代器在unicode库中非常有用。我所说的UPC是指中讨论的含义,即用户将其视为一个字符,但可能在unicode中表示为一个代码点或一个图形集簇。因为我通常使用拉丁语言,所以我总是会举一些例子,比如“我想把ü作为一个UPC来处理,不管UPC是一个图形集还是一个代码点”

反对UPC迭代器(或grapheme集群迭代器,请随意选择)的同事们会反驳“您可以规范化为NFC,然后使用代码点迭代”和“grapheme集群迭代没有用例”

我一直在考虑以拉丁语为中心的用例,这些用例可能无法很好地转换到unicode领域——就像我在做终端输出一样,我想将一列填充到N列宽,所以我想知道一个字符串中有多少个UPC

我想我想知道的是:

  • 是否存在无法规范化为单个代码点的有意义的grapheme集群?在西方用户中是否有可能发生这种情况?我假设韩语或阿拉伯语就是这种情况,但我不得不承认我完全不知道这一点
  • 是否有其他语言提供UPC/grapheme集群迭代/操作?Unicode规范有什么建议吗

  • 不清楚您的问题如何没有得到以下答案:

  • 甚至对于只使用拉丁字母的语言,也有许多这样的字母组,因为并非所有的组合标记都有与所有其他字母/形式组成的组合,例如,空格。UAX#29中的表1a有几个非拉丁语示例

  • 这就是UAX#29的目的:将grapheme集群操作推广到Unicode支持的所有语言

  • (1) 在西方用户中是否有可能发生这种情况


    我刚刚重读了UAX 15。。。您是指第5节“综合排除表”吗?我必须承认,我很难理解这一部分的内容,也很难将其应用到我所懂的语言中。我想我是在要求文化知识——我需要多大程度上了解字形集群?告诉我的客户我们不支持他们是否合理?我们公司有一种倾向于忽视他们的存在,直到他们咬了我们。我想知道其中的风险,并且手头有令人信服的论据,如果它们存在的话。wikepedia表似乎就是我正在寻找的r.e.拉丁语。您或其他人能告诉我这些被排除的集群有多普遍,以及在哪些国家我可能会遇到它们吗?考虑到支持grapheme集群的算法是众所周知的,并且在任何一个像样的Unicode库中实现,不支持它们似乎会更加困难。