如何处理阿拉伯语unicode U+06A8 与 U+08C4 和 U+08BC?文档不清楚

问题描述 投票:0回答:1

稍微类似的问题: U+06A4 和 U+06A8 之间的区别? (上面有三个点的阿拉伯字母 VEH 和阿拉伯字母 QAF)

我正在编写一个脚本来处理不同的阿拉伯语 unicode 点,具体取决于它们是初始形式、中间形式、最终形式还是独立形式,并返回正确的 unicode 点。对于阿拉伯语 unicode 中的许多字符,这很简单(请参阅阿拉伯语表示形式-A),并以 067B 为例 ﭒ 我直接提供了它的每种形式以及该形式各自的十六进制代码点。如果我在输入流中读取此字符,我可以根据左右字符的连接特征知道该字母应采用哪个字形:首字母、中间字母、结尾或孤立字母。 然而我对几个字母感到困惑。

我的问题是专门针对角色的:

在这里找到:https://www.unicode.org/charts/PDF/U08A0.pdf

在这里找到:https://www.unicode.org/charts/PDF/U0600.pdf

U+08BC 和 U+08C4 没有在阿拉伯语的演示文稿表格 A 和 B 文档中明确编写不同的演示文稿表格,他们将它们内联写入这些其他文档中,我不完全理解他们想说什么对于 U+08BC。他们是说对于它的初始形式和中间形式应该采用点 U+06A7 而在其他形式中应该采用点 U+066F 吗?如果是这样,那么 U+08C4 与这封信有什么关系呢?为什么会在注释里?

其次,我不明白U+08C4的注释在说什么。 “这封信显示”是什么意思,它已经显示了 U+0642 中标准两个点提供的字形中额外的一个点?那么哪两个点码点会为其初始形式和中间形式生成 U+08C4?或者说,如果在开头或中间形式中找到 U+08C4,则需要再添加一个点,总共 4 个点?一个人会怎样做呢? U+08BC 和笔记中的这封信有什么关系?

第三个也是最后一个问题 U+08C4 与 U+06A8 有何不同。我的猜测是,表示形式不同,因此它们需要有不同的代码点。我只是想在这里澄清一下。

提前谢谢您

unicode arabic arabic-support
1个回答
0
投票

您可能误解了阿拉伯语演示形式。它们的存在主要是为了向后兼容,它们本身有时也很有用,但它们并不是作为显示阿拉伯字母形式的通用工具。如规范(第 387 页)中所述:

可选功能。许多其他连字和上下文形式是可选的,具体取决于 字体和应用程序。其中一些表示形式被编码在范围中 U+FB50..U+FDFF 和 U+FE70..U+FEFE。 但是,这些表格不应该用于 通用互换。 此外,并不期望每种阿拉伯字体都包含所有 这些形式,也不包括每种字体使用的所有表示形式。)

如果它们碰巧对你有用,那也没关系。但它们没有得到特别支持,并且不会添加新的。如私人使用常见问题解答中所述:

阿拉伯语表示形式 -A 块具有 32 个未分配代码点的连续范围,但截至 2001 年,当对更多 BMP 非字符的需求变得明显时, UTC 已经清楚,更多阿拉伯语表示形式的编码类似于阿拉伯语演示表格中已有的内容 - 块对任何人都没有用。

Unicode 并不意味着对位置字形变化进行编码。它仅用于对“抽象字符”进行编码。根据上下文选择正确的字形是字体的工作。

关于U+08BC,他们正在给渲染引擎和字体的作者一些提示。无论位置如何,U+08BC 应始终编码为 U+08BC。但了解在哪里可以重用字形会很有用。

所以你的根本目标是:

我正在编写一个脚本来处理不同的阿拉伯语 unicode 点,根据它们是初始形式、中间形式、最终形式还是独立形式,并返回正确的 unicode 点。

通常,正确的代码点不会根据位置而改变。仅适用字形选择或渲染调整。如果您尝试显示某些表单,请考虑使用 U+0640 (tatweel) 来创建所需的“连接”。

© www.soinside.com 2019 - 2024. All rights reserved.