Unicode字符未在JTextArea中正确显示

时间:2015-04-17 12:17:11

标签: java unicode jython jtextarea

我正在编写一个需要显示和允许Unicode字符编辑的文本编辑器。我正在Jython中开发它,因为数据模型是Python,GUI将使用Java Swing库。

当我加载其中一个包含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方面不是很有经验,所以也许我应该做的事情对我来说不明显。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

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