2

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

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

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

4

2 回答 2

2

我相信问题在于不支持双向(即从右到左或“RTL”)文本输出的 Gnome 终端。如果我运行您的上述程序(带有编码声明):

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

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

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

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

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

于 2017-10-01T06:34:39.097 回答
0

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

于 2020-12-05T07:15:45.740 回答