阿拉伯字符是否根据字符串中的位置具有不同的Unicode代码点,还是可视化解决方案?
这是同一个单词,3次,带有空格而没有 看起来它的Unicode值相同。
عربى
عربى
عربى
我需要做的是扫描阿拉伯字符串列表,并获取它们的值。使用这些值,我将选择要显示的特定字母的图标。 但是,如果它是相同的代码点,意思是我需要在代码中创建我自己的逻辑,我想避免。
答案 0 :(得分:12)
不同的形状有不同的unicode,例如字母Ê\u062A
包含不同形状的所有代码:\uFE95
Ê,\uFE97
Ê,\uFE98
Ê,{{ 1}}Ê。
虽然大多数情况下阿拉伯语文本与主要的未定形unicode保持一致。形状形式仅用于渲染。因此,如果你通过一个程序检查你的文本,你会发现它大多没有形状。
如果您想要塑造所有字母,您可以使用像[{3}}这样的整形器库:
\uFE96
如果您希望所有字母都不成形,请使用向下形状贴图将字母转换为其主要形状。
这是一张整形地图:
import arabic_reshaper
reshaped_text = arabic_reshaper.reshape(u'اللغة العربية رائعة')
答案 1 :(得分:4)
阿拉伯语在Unicode中为其保留了5个字符块:
问题中的示例文本全部用4个代码点编码:
此外,还有空格和一些出现:
尽管使用相同的Unicode代码点来存储数据,但阿拉伯字母的显示方式不同,这表明您需要调整显示的字形相对于其他字符的位置(开头,中间,结尾)单词或独立)。您可以阅读第9章(Middle East–I)以了解有关阿拉伯文本处理的更多信息。