2013-12-12 66 views
0

我有一個使用wx.stc.StyledTextCtrl文本編輯器的wxPython GUI。它的內容可能包含一些unicode字符,如希臘字母。我注意到,StyledTextCtrl.SaveFile()方法只在內容沒有unicode字符時才起作用。否則,保存的文件將變成空文件。使用unicode內容調用w.stc.StyledTextCtrl.SaveFile時出現問題

我試着調用StyledTextCtrl.SetCodePage(stc.STC_CP_UTF8),但它也沒有幫助。所以,我不太確定StyledTextCtrl代碼中是否有錯誤,或者我錯過了什麼。任何幫助表示讚賞。

+0

這是非常可能的,有一個錯誤。我沒有測試這一個(我只是得到文本並保存它自己),但我遇到了需要在像「StartStyling」這樣的文本中定位的方法的問題。它計數字節而不是字符。想象一下UTF-8文本的混亂。 – Fenikso

回答

0

保存代碼使用wxConvCurrent,因此您可以嘗試將其設置爲wxConvUTF8,以確保即使不是當前語言環境的編碼(在Windows下絕不是這種情況),也可以使用UTF-8。

不幸的是,我不確定您是否可以從Python更改wxConvCurrent。如果您不能,最簡單的解決方案可能是將wxStyledTextCtrl::GetValue()自己寫入文件,而不是依賴其SaveFile()方法。如果你這樣做,保存成功後請不要忘記撥打SetSavePoint()

+0

感謝您的幫助。我決定編寫自己的保存/加載方法,並在這兩個調用完成後都調用SetSavePoint()。 – shahins

相關問題