贴一下今天python中文乱码问题解决办法。

来源:互联网 发布:qt图形界面编程入门 编辑:程序博客网 时间:2024/05/20 06:41
#!/usr/bin/env python#coding:utf-8import wxclass InputDialog ( wx.Dialog ):        def __init__( self, parent ):        wx.Dialog.__init__ ( self, parent, id = wx.ID_ANY, title = u"调整信息输入", pos = wx.DefaultPosition, size = wx.Size( 535,135 ), style = wx.DEFAULT_DIALOG_STYLE )                self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )        self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )                bSizer1 = wx.BoxSizer( wx.VERTICAL )                bSizer2 = wx.BoxSizer( wx.HORIZONTAL )                self.m_timeRadio = wx.RadioButton( self, wx.ID_ANY, u"输入时间:", wx.DefaultPosition, wx.DefaultSize, 0 )        bSizer2.Add( self.m_timeRadio, 0, wx.ALL, 5 )                self.m_datePicker = wx.DatePickerCtrl( self, wx.ID_ANY, wx.DefaultDateTime, wx.DefaultPosition, wx.DefaultSize, wx.DP_DEFAULT )        bSizer2.Add( self.m_datePicker, 0, wx.ALL, 5 )                self.hoursLabel = wx.StaticText( self, wx.ID_ANY, u"时:", wx.DefaultPosition, wx.DefaultSize, 0 )        self.hoursLabel.Wrap( -1 )        bSizer2.Add( self.hoursLabel, 0, wx.ALL, 5 )                self.m_hoursTextCtrl = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size( 70,-1 ), 0 )        bSizer2.Add( self.m_hoursTextCtrl, 0, wx.ALL, 5 )                self.minnutesLabel = wx.StaticText( self, wx.ID_ANY, u"分:", wx.DefaultPosition, wx.DefaultSize, 0 )        self.minnutesLabel.Wrap( -1 )        bSizer2.Add( self.minnutesLabel, 0, wx.ALL, 5 )                self.m_minutesTextCtrl = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size( 70,-1 ), 0 )        bSizer2.Add( self.m_minutesTextCtrl, 0, wx.ALL, 5 )                self.secondsLabel = wx.StaticText( self, wx.ID_ANY, u"秒:", wx.DefaultPosition, wx.DefaultSize, 0 )        self.secondsLabel.Wrap( -1 )        bSizer2.Add( self.secondsLabel, 0, wx.ALL, 5 )                self.m_secondsTextCtrl = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size( 70,-1 ), 0 )        bSizer2.Add( self.m_secondsTextCtrl, 0, wx.ALL, 5 )                        bSizer1.Add( bSizer2, 0, wx.EXPAND, 5 )                bSizer3 = wx.BoxSizer( wx.HORIZONTAL )                self.m_normalInfoRadio = wx.RadioButton( self, wx.ID_ANY, u"常用信息输入:", wx.DefaultPosition, wx.DefaultSize, 0 )        bSizer3.Add( self.m_normalInfoRadio, 0, wx.ALL, 5 )                self.m_normalInfoTextCtrl = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size( 300,-1 ), 0 )        bSizer3.Add( self.m_normalInfoTextCtrl, 0, wx.ALL, 5 )                        bSizer1.Add( bSizer3, 0, wx.EXPAND, 5 )                        bSizer1.AddSpacer( ( 0, 0), 1, wx.EXPAND, 5 )                bSizer4 = wx.BoxSizer( wx.HORIZONTAL )                        bSizer4.AddSpacer( ( 0, 0), 1, wx.EXPAND, 5 )                self.m_btnOk = wx.Button( self, wx.ID_OK, u"确定", wx.DefaultPosition, wx.DefaultSize, 0 )        bSizer4.Add( self.m_btnOk, 0, wx.ALL, 5 )                self.m_btnCancel = wx.Button( self, wx.ID_OK, u"取消", wx.DefaultPosition, wx.DefaultSize, 0 )        bSizer4.Add( self.m_btnCancel, 0, wx.ALL, 5 )                        bSizer1.Add( bSizer4, 0, wx.EXPAND, 5 )                        self.SetSizer( bSizer1 )        self.Layout()                self.Centre( wx.BOTH )        self.Centre( wx.BOTH )        def __del__( self ):        pass        if __name__ =='__main__':    app = wx.App()    dlg = InputDialog(None)    dlg.Show()    app.MainLoop()    

代码如上, 就是一个小小的简单的 对话框显示问题,里面有中文,但是显示乱码。

首先人为编码不对,在文件头什么为utf-8了:

#!/usr/bin/env python
#coding:utf-8

然后运行,还是乱码,然后以为文件不是没保存为utf-8 查看。

在项目中选中该文件,如 InputDialog.py , 右键- > 属性 ->resource -> text file encoding

 

然后确定是一样的,还不行,为什么呢。后来想了想,直接把代码先暂时拷贝到一个临时文件里面去,然后把InputDialog.py这个文件删除,

干脆重新建立一个新的空InputDialog.py ,先用上面的方法看了下,默认格式为GBK。额,然后我改为UTF-8 , 然后把原来的代码拷贝

进来,运行,没乱码问题了,搞定,不过还是没知道为什么这么就可以了。

原创粉丝点击