Python中的双向Unicode文本

2024-09-30 01:30:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要在reportlab中创建一个表,用RTL语言(如阿拉伯语和希伯来语)以及LTR语言(如英语)创建文本。在

thispost之后,我在每个阿拉伯语/希伯来语单词的开头添加Unicode字符“从右向左嵌入”(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表格中,单词仍然颠倒过来:“ابحم”和 “םולש”

(注。我还尝试在RTL字符之前添加Unicode字符“从右向左标记”(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' םולש

我怎样才能让阿拉伯语和希伯来语的文本出来?在

注意。我查过PythonBidi和PyFriBidi,但我不想使用这些库。在


Tags: 文本语言unicode字符单词rtlprintreportlab

热门问题