打印阿拉伯字符会增加微小的视觉差异并插入额外的 unicode 字符

Printing Arabic characters adds small visual differences and inserts additional unicode characters

所以我打印了这个阿拉伯语文本 ("First Party Second Party"): لطروالأول الطروالثانى

有时它会打印成这样:ﻟطرف اﻷول اﻟطرف اﻟﺛﺎﻧﻰ

'original' 转换为 unicode 的文本如下: \u0644\u0637\u0631\u0641 \u0627\u0644\u0623\u0648\u0644 \u0627\u0644\u0637\u0631\u0641 \u0627\u0644\u062b\u0627\u0646\u0649

打印作业中的数据为: \ufedf\u0637\u0631\u0641 \u0627\ufef7\u0648\u0644 \u0627\ufedf\u0637\u0631\u0641 \u0627\ufedf\ufe9b\ufe8e\ufee7\ufef0

那么为什么会这样呢?我可以搜索打印作业数据并对某些词采取行动,但似乎无法理解为什么阿拉伯语的打印数据会发生变化。

视觉上也存在细微差别: 谢谢大家!

阿拉伯语的排版与罗马文字不同,特别是在处理连字和对齐的方式上。把这个放在上下文中,考虑英语,它有一些用于排版组合的连字,例如 ff、fi 和 ffi,它们通常在输出中呈现为单个字符。

下面是三个字符 ffi,呈现为单个连字字符 (\uFB03)。

这是一篇关于一般连字的文章。

https://en.wikipedia.org/wiki/Typographic_ligature

为了证明这一点,罗马文字通常会插入空格或连字符(以及字距调整)。对于阿拉伯语,使用 "kashidas" 来拉伸笔画的宽度被认为更令人愉悦,额外的字符会导致出现拉伸。

一般情况下,排版文本中使用的Unicode字符数可能会比原文多或少。

如果您有兴趣,这里有一些阿拉伯语参考资料。

https://www.tug.org/tugboat/tb27-2/tb87benatia.pdf

https://design.tutsplus.com/tutorials/creative-arabic-calligraphy-kashida-tajim-and-tashkil--cms-23240