使用unicode内容调用w.stc.StyledTextCtrl.SaveFile时出现问题

使用unicode内容调用w.stc.StyledTextCtrl.SaveFile时出现问题,unicode,wxpython,wxwidgets,wxstyledtextctrl,Unicode,Wxpython,Wxwidgets,Wxstyledtextctrl,我有一个带有wx.stc.StyledTextCtrl文本编辑器的wxpythongui。它的内容可能包含一些unicode字符,如希腊字母。我注意到StyledTextCtrl.SaveFile()方法只有在内容没有unicode字符时才起作用。否则,保存的文件将成为空文件 我试着调用StyledTextCtrl.SetCodePage(stc.stc\u CP\u UTF8),但也没用。因此,我不太确定StyledTextCtrl代码中是否存在bug,或者是否缺少某些内容。非常感谢您的帮助。

我有一个带有wx.stc.StyledTextCtrl文本编辑器的wxpythongui。它的内容可能包含一些unicode字符,如希腊字母。我注意到StyledTextCtrl.SaveFile()方法只有在内容没有unicode字符时才起作用。否则,保存的文件将成为空文件


我试着调用StyledTextCtrl.SetCodePage(stc.stc\u CP\u UTF8),但也没用。因此,我不太确定StyledTextCtrl代码中是否存在bug,或者是否缺少某些内容。非常感谢您的帮助。

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


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

很可能存在错误。我没有测试这个(我只是获取文本并自己保存),但是我遇到了一些需要在文本中定位的方法的问题,比如
StartStyling
。它计算字节而不是字符。想象一下UTF-8文本的混乱。谢谢你的帮助性回答。我决定编写自己的Save/Load方法,并在这两个调用完成后调用SetSavePoint()。