使用 python 逐字打印乌尔都语(非拉丁语)

Printing urdu (non-latin language) word by word using python

我正在尝试使用 python 打印乌尔都语单词。我阅读了有关 Unicode 的内容,但 [我面临的问题是 python 试图像英语一样打印乌尔都语,即从左到右逐字符打印。乌尔都语字符]不能像英语那样打印。我已经尝试了一些解决方案,例如 here 中提到的解决方案,但它们对我不起作用。我一直在尝试使用以下代码打印我的乌尔都语字符串。

text_string = "آکاش کمار".decode('utf-8')   
print text_string

我在 Ubuntu 终端上的 output 就像英语从左到右而不是从右到左,而且也是一个字符一个字符。

我认为问题在于不支持双向(即从右到左或 "RTL")文本输出的 Gnome 终端。如果我 运行 你上面的程序(带有编码声明):

# -*- coding: utf-8 -*-
text_string = "آکاش کمار".decode('utf-8')
print(text_string)

在 Emacs shell 缓冲区中(does 支持混合 LTR 和 RTL 输出),我得到正确的输出:

$ python2 urdu.py
آکاش کمار
$ 

但是,如果我在 Gnome 终端中 运行 它,我会得到你发布的向后输出。

如果您不使用 Emacs,另一种选择是安装 mlterm(多语言终端)包并使用它提供的终端模拟器。

通过使用 LibRaqm 可以解决您的问题 link 下面给出了库 https://github.com/HOST-Oman/libraqm