tkinter无法正确显示unicode字符

python和tkinter正在正确处理unicode字符。 但是他们无法正确显示unicode编码的字符。 我在Ubuntu中使用Python 3.1和tkinter。我正在尝试使用泰米尔语unicode字符。 所有处理都正确完成。但是显示错了? 这是错误的显示,如在tkinter中 https://docs.google.com/leaf?id=0B7YA7kky_NEoM2U3MzI5NGUtNTk2NC00MzYzLTk1N2YtMTJjYTA0Yjc0MmE1&hl=en_GB&authkey=CKORhugK 这是正确的显示(如在gedit中) https://docs.google.com/leaf?id=0B7YA7kky_NEoNDBmMzYzOWEtMjY5Ny00NWM5LWE0MWYtMTg1ZDVhOGQ2MmEz&hl=en_GB&authkey=CPWhi74J 有人可以帮忙吗?     
已邀请:
没有代码就很难诊断程序。看看你是否可以将代码归结为显示问题的简短代码,然后发布。 我不熟悉泰米尔语字形,它们非常小,但是看截图,看起来所有的字形都在那里,但某些字形会被交换,我是对的吗? (嗯,我想这应该是一个“评论”,而不是“答案”。仍然在这个网站上找到我的方式。)     
我遇到过类似的问题,并发现我使用Zero Width Joiner(U + 200D)明确告诉渲染引擎加入两个字符。这曾经在2010年工作,但看起来渲染引擎(我现在已经知道)已经发生了变化,现在在2011年,我发现让木匠创造了问题! (它打破了我的工作代码)我不得不删除显式的零宽度连接器,让我的代码再次工作。希望这可以帮助。     
看起来Tk错误处理了“零级组合标记”之类的内容,请参阅: http://www.unicode.org/versions/Unicode6.0.0/ch04.pdf#G124820(表4-4) 我假设其中一个未正确显示的序列是代码点:0BA9 0BC6(TAMIL SYLLABLE NNNE),其中0BC6是根据Unicode标准的重组类零组合标记,这基本上意味着字形被交换。 修复它的唯一方法是在Tk bug跟踪器上提交一个错误并希望它得到修复。     
由于我不能/不知道如何评论其他人的评论和答案,我在这里打字。 @Bryan Oakley我不认为字体是这里的问题,但它的渲染是。例如,当我输入两个unicode字符u0BAE和u0BC6时,它应该组合成一个显示“மெ”的泰米尔语字符。但我认为tkinter中不存在渲染引擎来显示某些unicode语言。 @Vamana是的,印度语有一个'组合单字符符号',如上所述,它需要两个unicode字符。当我输入charA,然后charB时,显示应该呈现为单个字符,比如charBA。但它显示charAB(这是错误的)。 @schlenk是的,你是对的。我最初使用IDLE,然后尝试在linux控制台中运行python,两者都错误地呈现Tamil文本进行显示。因此我来到了tkinter。现在,这也是徒劳的。 我目前正在使用文件IO。现在我想我应该学习如何使用python创建一个简单的网页进行输入和输出,以便浏览器正确呈现。     

要回复问题请先登录注册