【问题标题】:Unicode characters not being properly displayed in JTextAreaUnicode 字符未在 JTextArea 中正确显示
【发布时间】:2015-06-24 07:00:52
【问题描述】:

我正在编写一个需要显示和允许编辑 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 中读取和显示文件的代码 sn-p:

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

【问题讨论】:

    标签: java unicode jython jtextarea


    【解决方案1】:

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

    【讨论】:

    • 非常感谢!现已修复 :) 我还发现我可以使用编解码器库来做到这一点,如下所示:codecs.open(filename, encoding='utf-8').read()
    猜你喜欢
    • 2012-08-08
    • 1970-01-01
    • 2018-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    • 2012-05-21
    • 2011-03-17
    相关资源
    最近更新 更多