1

我有一个带有 wx.stc.StyledTextCtrl 文本编辑器的 wxPython GUI。它的内容可能包含一些 unicode 字符,例如希腊字母。我注意到 StyledTextCtrl.SaveFile() 方法仅在内容没有 unicode 字符时才有效。否则保存的文件最终是一个空文件。

我尝试调用 StyledTextCtrl.SetCodePage(stc.STC_CP_UTF8) 但它也没有帮助。所以,我不太确定 StyledTextCtrl 代码中是否存在错误,或者我遗漏了什么。任何帮助表示赞赏。

4

1 回答 1

0

保存代码使用wxConvCurrent,因此您可以尝试将其设置wxConvUTF8为确保使用 UTF-8,即使它不是当前语言环境的编码(在 Windows 下绝不是这种情况)。

不幸的是,我不确定您是否可以wxConvCurrent从 Python 进行更改。如果不能,最简单的解决方案可能是wxStyledTextCtrl::GetValue()自己写入文件,而不是依赖它的SaveFile()方法。SetSavePoint()如果您这样做,请不要忘记在成功保存后调用。

于 2013-12-12T13:35:30.297 回答