我有一个带wx.stc.StyledTextCtrl文本编辑器的wxPython GUI。它的内容可能包含一些unicode字符,如希腊字母。我注意到StyledTextCtrl.SaveFile()方法只有在内容没有unicode字符时才有效。否则,保存的文件将变成一个空文件。
我尝试调用StyledTextCtrl.SetCodePage(stc.stc_CP_UTF8),但也没有帮助。因此,我不太确定StyledTextCtrl代码中是否存在错误,或者我遗漏了什么。感谢您的帮助。
保存代码使用wxConvCurrent
,因此您可以尝试将其设置为wxConvUTF8
,以确保即使UTF-8不是当前区域设置的编码(在Windows下从来不是这样),也能使用UTF-8。
不幸的是,我不确定您是否可以从Python更改wxConvCurrent
。如果不能,最简单的解决方案可能是自己将wxStyledTextCtrl::GetValue()
写入文件,而不是依赖其SaveFile()
方法。如果保存成功,请不要忘记调用SetSavePoint()
。