gpt4 book ai didi

unicode - 有没有真正的 unicode 替代品?

转载 作者:行者123 更新时间:2023-12-05 01:43:41 24 4
gpt4 key购买 nike

作为支持 unicode 的 C++ 开发人员,委婉地说,这是一件令人头疼的事情。 Unicode 有一些不幸的属性,这使得很难确定字母的大小写、转换它们或几乎任何除了识别单个已知代码点左右(可能是也可能不是字母)之外的任何事情。看来,唯一真正的拯救是 ICU对于那些不幸没有内置语言(即 C 和 C++)的 unicode 支持的人。其他语言对 unicode 的支持可能不够好,也可能不够好。

所以,我想,一定有 真正 unicode 的替代品!即除了具有查找数据结构(树、表等)和识别字符之间的关系之外,还允许轻松识别字符类的编码?我怀疑对于大多数文本来说,任何此类编码都可能是多字节的——这对我来说并不是真正关心的问题,但我承认这是对其他人而言的。提供这样的编码需要大量工作,所以我真的不希望存在任何这样的编码 😞。

最佳答案

简短回答:据我所知没有。

作为非 C++ 开发人员,我不知道 Unicode 的具体痛点是什么,但由于您没有使用 C++ 标记问题,所以我仍然敢于尝试回答。

虽然我个人总体上对 Unicode 非常满意,但我同意某些方面很麻烦。如果从头开始重新设计 Unicode,则可以说其中一些可以得到改进,例如。除了实际的希腊字母之外,删除一些冗余,例如“拉丁希腊”数学字母(但这也会破坏与旧编码的兼容性)。

但大部分的“痛点”,恰恰反射(reflect)了最初书写的困惑用法。你自己提到大写“i”的问题,在某些拼字法中是“I”,在其他正字法中是“İ”,但还有很多其他困难——例如。德语“ß”,它是小写字母,但没有对应的大写字母(好吧,现在有,但很少使用);或最终位置看起来不同的字母(希腊语“σ”/“ς”);或含义颠倒的引用(«法国风格»与»瑞士风格«,“英语”与“德国风格”)......我可以继续一段时间。

除了提供字符属性、等价关系和关系表之外,我看不出编码对此有何帮助,而这正是 Unicode 所做的。您在评论中说,通过查看编码字符的字节,您希望它告诉您它是大写还是小写。对我来说,这听起来像是在说:“当我查看一个数字时,我希望它能告诉我它是否为质数。”我的意思是,即使是 ASCII 码也不会告诉你它们是大写还是小写,你只是记住了属性表,它告诉你 41..5A 是大写,61..7A 是小写的。但是很难记住或硬编码所有 120k Unicode 代码点的这些范围。因此,最简单的方法是使用查表。

对于“编码”的含义也存在一些混淆。Unicode 没有定义任何字节表示,它只分配代码点,即。整数,字符定义,并维护上述表格。严格意义上的编码(“编解码器”)是转换格式(UTF-8 等),它定义了代码点及其字节表示之间的映射。现在可以定义一个新的 UTF,它以提供大写/小写模式的方式将代码点映射到字节。但那会是什么呢?大写奇数,甚至小写?但是没有大小写区分的字母呢?然后,不是字母的字符?那么所有其他字符类别——标点符号、数字、空格、符号、组合变音符号——又如何呢,为什么不也代表这些字符呢?您可以将每个字符都放在预定义的范围内,但是如果向其中一个类别添加了太多新字符会怎样?

总结一下:我不认为你要求的是可能的。

关于unicode - 有没有真正的 unicode 替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48659324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com