Python中的双向Unicode文本
我需要在reportlab中创建一个表,其中包含RTL语言(如阿拉伯语和希伯来语)以及LTR语言(如英语)的文本 接下来,我将在每个阿拉伯语/希伯来语单词的开头添加Unicode字符“从右到左嵌入”(U+202B),并在每个单词的结尾添加Unicode字符“POP-Directive FORMATTING”(U+202C) 所以阿拉伯语单词“محبا”是这样的:Python中的双向Unicode文本,python,unicode,right-to-left,reportlab,bidirectional,Python,Unicode,Right To Left,Reportlab,Bidirectional,我需要在reportlab中创建一个表,其中包含RTL语言(如阿拉伯语和希伯来语)以及LTR语言(如英语)的文本 接下来,我将在每个阿拉伯语/希伯来语单词的开头添加Unicode字符“从右到左嵌入”(U+202B),并在每个单词的结尾添加Unicode字符“POP-Directive FORMATTING”(U+202C) 所以阿拉伯语单词“محبا”是这样的: u'\u202B\uFEE3\uFEAD\uFEA4\uFE92\uFE8E\u202C' 同样的,希伯来语单词“שלום”也是这样:
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'
跟帖
但结果是一样的:()
另外,当我使用ipython打印此unicode字符串时,文本将反向显示:
print u'\uFEE3\uFEAD\uFEA4\uFE92\uFE8E'
ابحرم
打印u'\u202B\u202E\u05e9\u05DC\u05D5\u05DD\u202C'
םולש
我怎样才能把阿拉伯文和希伯来文翻译出来
注意:我检查了PythonBidi和PyFriBidi,但我不想使用这些库。我对语言编码一点也不了解,但我确实遇到了(我想)的答案几天前有一个类似的问题。谢谢Aaron!我理解为什么字母会被翻转,但我不明白为什么添加从右到左的嵌入字符不能解决它。不幸的是,按照你提到的帖子中的建议添加从右到左的标记字符也没有帮助。有些事情我做错了,但我无法理解t what.ReportLab本机不支持复杂的文本布局,您确实需要额外的库。背景谢谢bobince,那么iptyhon中的打印内容呢?为什么它不能像我期望的那样反转字母?我不是一名
python
开发人员,但我知道有些工具会忽略rtl ltr相关字符,因为它们不会在特定时间出现这个工具,这里是PDF生成器,必须分别支持rtl
。