特殊阿拉伯字符

部分阿拉伯字符在不同的代码页中具有不同的表示,因此需要在代码页转换期间进行特殊处理。

由于未在所有代码页中表示这些字符,因此常规转换会导致替换控制字符 (SUB),造成数据丢失。

Lam-Alef
该字符在代码页 420、864 和 1046 中表示为单个字符,用于除 Unicode Arabic Presentation Forms-B(uFExx 范围)外的可视表示。 该字符在代码页 425、1089 和 1256 中表示为两个字符 Lam 和 Alef,用于除 Unicode Arabic u06xx 范围外的隐式表示。
Tail of Seen 系列字符
可视代码页 420、864 和 1046 将 Seen 系列字符的最终形式表示为两个相邻的字符:四分之三字型和 Tail。 隐式代码页 425、1089、1256 和 Unicode Arabic u06xx 范围不表示 Tail 字符。 在 Unicode Arabic Presentation Forms-B(uFExx 范围)中,Seen 系列中字符的最终形式表示为一个字符。
除 Shadda 之外的元音符号或变音符号字符
代码页 420 和 864 中未表示这些字符。 将元音符号字符由代码页 425、1046、1089、1256 和 Unicode 转换为 420 或 864 会导致 SUB 字符。
Yeh-Hamza 最终形式
代码页 420 和 864 没有针对 Yeh-Hamza 最终形式的唯一字符;其表示为两个字符,即 Yeh 最终形式和 Hamza。 在其他代码页(如 425/1046/1089/1256 和 Unicode)中,Yeh-Hamza 最终形式根据用户的输入表示为一个字符或两个字符;无论是一键笔画(Yeh-Hamza 键)还是两键笔画(Yeh 键 + Hamza 键)均是如此。 从前面的代码页到 420 或 864 的转换中,会将 Yeh-Hamza 最终形式字符转换为 Yeh-Hamza 初始形式;特殊处理过程必须将其转换为 Yeh 最终形式和 Hamza。

为避免在转换过程中丢失此类字符,提供了多种阿拉伯语字型选项以便正确处理这些字符。