Python中的双向Unicode文本

时间:2017-08-07 12:42:05

标签: python unicode right-to-left reportlab bidirectional

我需要在reportlab中创建一个表格,其中包含阿拉伯语和希伯来语等RTL语言的文本以及英语等LTR语言。

关注this帖子后,我在每个阿拉伯语/希伯来语单词的开头添加了Unicode字符“RIGHT-TO-LEFT EMBEDDING”(U + 202B),以及Unicode字符'POP DIRECTIONAL FORMATTING '(U + 202C)在每个单词的末尾。

所以阿拉伯语'مرحبا'将是这样的:
u'\u202B\uFEE3\uFEAD\uFEA4\uFE92\uFE8E\u202C'

同样,希伯来语'שלום'将是这样的:
u'\u202B\u202E\u05e9\u05DC\u05D5\u05DD\u202C'

不幸的是,在我在reportlab生成PDF的表格中,这个词仍然反过来说:'ابحرم'和  'םולש'

(Nb。我还尝试在RTL字符之前添加Unicode字符'RIGHT-TO-LEFT MARK'(U + 200F),如下所示: print u'\u200F\uFEE3\uFEAD\uFEA4\uFE92\uFE8E' 关注this帖子 但结果是一样的:()

当我使用ipython打印这个unicode字符串时,文本将反转出来:

print u'\uFEE3\uFEAD\uFEA4\uFE92\uFE8E' ابحرم print u'\u202B\u202E\u05e9\u05DC\u05D5\u05DD\u202C' םולש

如何才能正确显示阿拉伯语和希伯来语文本?

的Nb。我检查了PythonBidi和PyFriBidi,但我不想使用这些库。

0 个答案:

没有答案