python - 使用 Python 将阿拉伯语或任何从右到左的书写系统字符串打印到 Linux 终端

标签 python linux right-to-left

最简单的例子是:

city = "‏المكلا‎"
print(city)

我期望输出是:

‏المكلا‎

但实际上输出的是反向字符串(字母看起来有点不同,因为它们有开始、中间和结束形式)。我无法将其粘贴到此处,因为复制粘贴会再次更正字符串的顺序。

如何将阿拉伯语正确打印到 Linux 终端?周围的文本是从左到右 (LTR),只有这一行需要从右到左 (RTL)。是否有 UFT-8 字符可以告诉终端?

最佳答案

创建一个带有 RTL 字符的字符串:

rtl = u'\u200f'

Python 3 默认使用 UTF 字符串,因此在这种情况下字符串前面的“u”是不必要的。

如果问题实际上是终端无法正确呈现,您可以手动反转字符串。

test = 'Hello world'
test = test[::-1]
# test == 'dlroW olleH'

还有 python-bidi library这可能会有所帮助。 ( source )

关于python - 使用 Python 将阿拉伯语或任何从右到左的书写系统字符串打印到 Linux 终端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33700735/

相关文章:

html - "End"- 对齐 CSS 中的元素

python - 在 python 和 heroku 网页中使用 MQTT 发布和订阅消息

python - Python 文字的安全读取

Python:从文件读入列表

linux - 在 linux-redhat 上安装旧版本的 gcc

c - mmap 相同的文件,相同的物理内存?

python - 如何获取用套索选择器绘制的区域数组?

c - 如何使用原始套接字 ping 本地主机?

jquery - 使用 jquery 添加用于样式/换肤的 html 标记真的很糟糕吗?

android - MenuItem 图标在 RTL 布局中未正确显示