2017-11-12 12 views
3

히브리어로 텍스트를 표시하는 tkinter를 사용하여 파이썬 GUI 응용 프로그램을 만들고 있습니다.tkinter가있는 히브리어 - BiDi

Windows (10, python 3.6, tkinter 8.6) 히브리어 문자열이 잘 표시됩니다.

Linux (Ubuntu 14, python 3.4 및 3.6, tkinter 8.6)에서 히브리어 문자열이 잘못 표시됩니다. BiDi 인식이 없음 - 제가 누락 되었습니까?

pybidi가 설치되어 있고 bidi.algorithm.get_display(hebrew_string)을 통해 - 문자열이 올바르게 표시됩니다.
그러나 Windows에서는 get_display(hebrew_string)이 잘못 표시됩니다.

BiDi는 python-tkinter-Linux에서 지원되지 않습니까?
각 문자열을 get_display(string)으로 묶어야합니까?
only_on_linux(...) 기능을 사용하여 get_display(string)을 포장해야합니까?

+0

유니 코드 문자를 사용하는 경우 잘 작동합니다. 'unicode = hebrew_string.encode ("UTF-32")'를 사용하고'unicode'를 표시하면 작동하는지보십시오. – SolarFactories

+0

출력이 무엇인지 잘 모르겠습니다. –

+0

'שלום'문자열을 표시했습니다 : Windows에서 제대로 표시되었으므로 Linux 'וווש'. print()를 사용하여 encode()를 사용하면 쓰레기가 생깁니다. b '\ xff \ x00 \ x00 \ xe9 \ x05 \ x00 \ x00 \ xdc \ x05 \ x00 \ x00 \ xd5 \ x05 \ x00 \ x00 \ xdd \ x05 \ x00 \ x00 ' –

답변

1

나는 조금 훑어 보았는데, tk/tcl이 2011 년경부터 Windows bidi 지원을 사용한다는 것이 알려진 문제이지만, 분명히 리눅스에서는 그다지 동일하지 않습니다. 예 : https://wiki.tcl.tk/3158. Python/Tkinter: Using Tkinter for RTL (right-to-left) languages like Arabic/Hebrew?에 대한 한 가지 대답은 * nix에 대한 몇 가지 해결 방법이 있습니다. 나는 최신 tcl/tk를 가진 맥 지원에 대해 확신하지 못한다.

플랫폼 간 작업의 경우 Windows에서 반향을하고 우분투에서 되돌릴 수있는 기능이 필요합니다.