在Windows XP/10中使用wxPython開發(fā)Ramon時,可以使用str的decode()/encode()方法在ASCII/GBK/UTF-8/UTF-16之間轉(zhuǎn)換。我今天采用了以下的代碼才轉(zhuǎn)換出合適的中文顯示。
msg = msg.decode('gbk').encode('gbk')
wxPython UI將用戶輸入的信息轉(zhuǎn)換為bytes,切割后,再拼合,然后將拼合后的bytes轉(zhuǎn)換為用戶可顯示的文字。
由于Windows缺省采用GBK,而Python2.7缺省采用ASCII,所以從UI獲得是GBK編碼,但是切割、拼合后的bytes也是GBK編碼,所以首先需要先decode('GBK'),但是decode之后其實是unicode,然后再編碼encode('GBK')才能夠顯示。
不過,我覺得應(yīng)該使用UTF-8或unicode傳輸比較有效。