Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未在JTextArea中正确显示Unicode字符_Java_Unicode_Jython_Jtextarea - Fatal编程技术网

Java 未在JTextArea中正确显示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Å«

我正在编写一个文本编辑器,它需要显示并允许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ūš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()