2015-04-17 85 views
1

我正在編寫一個需要顯示並允許Unicode字符版本的文本編輯器。我正在用Jython開發它,因爲數據模型是用Python編寫的,GUI將使用Java Swing庫。Unicode字符在JTextArea中未正確顯示

當我加載包含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方面並不是很有經驗,所以也許有些事情對我來說並不明顯,我應該這樣做。任何幫助將不勝感激!

回答

2

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

+1

非常感謝!現在修復:) 我也發現我可以用編解碼器庫,如下所示: codecs.open(filename,encoding ='utf-8')。read() – zapatilla