unicode - unicode 中不可还原的字素簇

标签 unicode text-segmentation

我认为“用户感知字符”(下文称为 UPC)迭代器在 unicode 库中非常有用。我所说的 UPC 是指 unicode standard annex 29 中讨论的意义。 ,这是用户所感知的字符,但可能在 unicode 中表示为代码点或字素簇。由于我通常使用拉丁语言,因此我总是会提出诸如“我想将 ü 作为一个 UPC 处理,无论 UPC 是字素簇还是单个代码点”之类的示例。

反对 UPC 迭代器(或字形簇迭代器,您可以选择)的同事反驳道“您可以规范化为 NFC,然后使用代码点迭代”,以及“没有字形簇迭代的用例”。

我一直在思考以拉丁语为中心的用例,这可能不能很好地转化为unicode宇宙——就像我正在做终端输出一样,我想将一列填充到N列宽度,所以我想知道字符串中有多少个 UPC...

我想我想知道的是:

  1. 是否存在无法标准化为单个代码点的有意义的字素簇?西方用户中是否有可能出现这种情况?我假设韩语或阿拉伯语就是这种情况,但我必须承认我对此一无所知。
  2. 是否有其他语言提供 UPC/grapheme 集群迭代/操作? Unicode 规范有什么建议吗?

最佳答案

目前还不清楚 UAX #29 为何没有回答您的问题:

  1. 存在很多这样的字素簇,即使对于仅使用拉丁字母的语言也是如此,因为并非所有组合标记都与所有其他字母/形式组成,例如 this table on Wikipedia 中的间隙。 UAX #29 中的表 1a 有几个非拉丁语示例。

  2. 这就是 UAX #29 的目的:将字素簇操作推广到 Unicode 支持的所有语言。

关于unicode - unicode 中不可还原的字素簇,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31985210/

相关文章:

html - 是否可以在网站上打印 DOS 字符?

c++ - printf 从整数转义 unicode 字符

java - iText 中的高棉语 Unicode

c - 确定 UTF16 值是 libunistring 中的代理项

python - 如何将字符串拆分为单词列表?

c++ - 使用 ICU 进行分词

python - cx_Oracle 'ORA-01843: not a valid month' 带有 unicode 参数

dictionary - 带有子词的词的 trie 结构

java - 如何在单独的行中逐字显示句子

python - 文本分割 : Algorithm to match input with the longest words from the dictionary