2015-04-17 75 views
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方面并不是很有经验,所以也许有些事情对我来说并不明显,我应该这样做。任何帮助将不胜感激!

回答

2

open(filename, "r", "utf-8")的文件是UTF-8(多字节序列,ASCII的超集)

+1

非常感谢!现在修复:) 我也发现我可以用编解码器库,如下所示: codecs.open(filename,encoding ='utf-8')。read() – zapatilla