Java 未在JTextArea中正确显示Unicode字符
我正在编写一个文本编辑器,它需要显示并允许Unicode字符的编辑。我正在Jython中开发它,因为数据模型是Python的,GUI将使用JavaSwing库 当我加载其中一个包含unicode字符的文件时,如果我在终端中打印它,我会得到正确的结果:Java 未在JTextArea中正确显示Unicode字符,java,unicode,jython,jtextarea,Java,Unicode,Jython,Jtextarea,我正在编写一个文本编辑器,它需要显示并允许Unicode字符的编辑。我正在Jython中开发它,因为数据模型是Python的,GUI将使用JavaSwing库 当我加载其中一个包含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Å«
š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方面不是很有经验,所以可能有一些事情对我来说并不明显,我应该去做。任何帮助都将不胜感激 打开(文件名,“r”,“utf-8”)
因为文件是utf-8(多字节序列,ASCII超集)非常感谢!现在修复:)我还发现我可以用codecs库来实现,如下所示:codecs.open(filename,encoding='utf-8').read()