gpt4 book ai didi

c - 有关 unicode 代码点排序的基本原理的信息?

转载 作者:行者123 更新时间:2023-11-30 17:15:39 24 4
gpt4 key购买 nike

我正在调查https://github.com/JuliaLang/utf8proc/blob/master/utf8proc.c#L397 ,特别是这个片段:

if (property1->combining_class > property2->combining_class &&
property2->combining_class > 0) {
buffer[pos] = uc2;
buffer[pos+1] = uc1;

显然,正在进行一些“排序”,但我在 Unicode 网站上找不到这种排序的基本原理(我根本不知道如何搜索它)。

为什么某些属性优先于其他属性,是否有一些基本原理,或者这只是一种“规范”排序?

最佳答案

这是“规范排序算法”,它定义了字符后面的组合标记的单个顺序。问题在于,在不同位置(例如,字符上方和下方)具有多个组合标记的字符可以通过多种方式指定:

ṩ: U+0073 U+0323 U+0307

ṩ: U+0073 U+0307 U+0323

规范化文本时,规范排序算法确保 ṩ 只能以第一顺序出现:下面的点在上面的点之前。由于字符可以组合的方式有很多,这种特定顺序(在上面之前在下面)的原因有点任意,但它遵循 the order in this table ——通常是从下到上、从左到右。

该算法的完整规范在section 3.11中给出。 Unicode 标准。

关于c - 有关 unicode 代码点排序的基本原理的信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29926607/

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