我正在编写一个需要显示和允许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方面不是很有经验,所以也许我应该做的事情对我来说不明显。任何帮助将不胜感激!
答案 0 :(得分:2)
open(filename, "r", "utf-8")
因为文件是UTF-8(多字节序列,ASCII的超集)