1
我正在编写一个需要显示并允许Unicode字符版本的文本编辑器。我正在用Jython开发它,因为数据模型是用Python编写的,GUI将使用Java Swing库。Unicode字符在JTextArea中未正确显示
当我加载包含Unicode字符,如果我在终端打印出来,我得到正确的结果,这些文件中的一个:
šatti[year]N; n; Ṭebetu[1]MN; mūša[at night]AV; ūm[day]N; n
但是,当我在JTextArea中打印出来,我得到这个:
šatti[year]N; n; Ṭebetu[1]MN; mūša[at night]AV; ūm[day]N; n
这是一个代码段与文件读取和显示在Jython的交易:
textArea = JTextArea()
textArea.font = Font("Monaco", Font.PLAIN, 14)
file = open(filename, "r")
text = file.read()
textArea.setText(text) #gives wrong result in JTextArea
print text #gives correct result in terminal
我试过改变JTextArea中的字体,使它和终端一样,以防出现问题,但它没有帮助。模板库会对此有所帮助吗?
我在使用Unicode方面并不是很有经验,所以也许有些事情对我来说并不明显,我应该这样做。任何帮助将不胜感激!
非常感谢!现在修复:) 我也发现我可以用编解码器库,如下所示: codecs.open(filename,encoding ='utf-8')。read() – zapatilla