Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.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 3.x 带tkinter-BiDi的希伯来语_Python 3.x_Tkinter_Hebrew_Bidi - Fatal编程技术网

Python 3.x 带tkinter-BiDi的希伯来语

Python 3.x 带tkinter-BiDi的希伯来语,python-3.x,tkinter,hebrew,bidi,Python 3.x,Tkinter,Hebrew,Bidi,我正在使用tkinter开发一个python GUI应用程序,它以希伯来语显示文本 在Windows(10、python 3.6、tkinter 8.6)上,希伯来语字符串显示良好 在Linux(Ubuntu14,python 3.4和3.6,tkinter 8.6)上,希伯来语字符串显示不正确-没有BiDi意识-我是否遗漏了什么? 我安装了pybidi,并通过bidi.algorithm.get\u display(希伯来语字符串)-字符串显示正确。 但是,在Windows上,get\u di

我正在使用tkinter开发一个python GUI应用程序,它以希伯来语显示文本

在Windows(10、python 3.6、tkinter 8.6)上,希伯来语字符串显示良好

在Linux(Ubuntu14,python 3.4和3.6,tkinter 8.6)上,希伯来语字符串显示不正确-没有BiDi意识-我是否遗漏了什么?

我安装了pybidi,并通过
bidi.algorithm.get\u display(希伯来语字符串)
-字符串显示正确。
但是,在Windows上,
get\u display(希伯来语字符串)
显示不正确

python tkinter Linux上不支持BiDi吗?
我必须用
get\u display(string)
包装每个字符串吗?

我必须在linux(…)上使用
仅获取
函数包装

我搜索了一下,tk/tcl大约从2011年开始就使用Windows bidi支持,这是一个众所周知的问题,但它们在linux上显然没有任何等价物。示例:。对的一个答案有一些*nix的变通方法。我不确定最新的tcl/tk是否支持Mac


对于跨平台工作,您需要一个在Windows上回响并在Ubuntu上反转的函数。

作为FriBidi的主要作者和Gtk中bidi文本支持的贡献者,我强烈建议您不要将TkInter用于任何希伯来语或除拉丁语、希腊语或西里尔语之外的任何其他文本。理论上,您可以在Linux上使用独立的fribidi可执行文件重新排列文本顺序,或者使用fribidi绑定,但bidi和复杂语言支持远远超出了这一范围。您可能需要支持文本插入、剪切和粘贴、整形,这只是其中的一些缺陷。使用优秀的gtk或Qt绑定到python会更好

如果您使用的是Unicode字符,它应该可以正常工作。如果您使用
unicode=hebrew_string.encode(“UTF-32”)
,然后显示
unicode
,看看它是否有效。我不确定应该输出什么。我显示了字符串“שלום”:在Windows上正确显示,在Linux“םջ㪛ן”。使用encode()获取垃圾,使用print()获取:b'\xff\xfe\x00\x00\xe9\x05\x00\x00\xdc\x05\x00\x00\xd5\x05\x00\x00\x00\x00\xdd\x05\x00\x00