Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的双向Unicode文本_Python_Unicode_Right To Left_Reportlab_Bidirectional - Fatal编程技术网

Python中的双向Unicode文本

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' 同样的,希伯来语单词“שלום”也是这样:

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

接下来,我将在每个阿拉伯语/希伯来语单词的开头添加Unicode字符“从右到左嵌入”(U+202B),并在每个单词的结尾添加Unicode字符“POP-Directive 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'
跟帖 但结果是一样的:()

另外,当我使用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