python 2を解決する.7.x Windowsシステムの下でファイルを中国語に書き込んでエラーを報告する

1113 ワード

分析:windowsの下でcmdのデフォルトの符号化はASCII符号化で、windowsの中国語の環境の下で符号化はGBKです
方法1:出力ストリームを保存して保存する時に1つの対文字GBKコードをして、ファイルに出力します
次のように
    title = textVar.get() + ".txt"              #  
    content = text.get("0.0", "end")            #  
    
    if title != ".txt":
        fileObj = open(title, "wb")             #  
        if systemName == "nt":
            print u"Windows ";
            fileObj.write(content.encode("gbk"));
        else:
            print u"Linux ";
            fileObj.write(content);
        fileObj.close()                         #  
        label.config(text = " ") 
    else:
        label.config(text = " ") 

os.nameはwindowsシステムかLinuxシステムかを判断する
中国語の文字化けしを解決する
書くとき
content.encode("gbk")

読み出し時もgbkで復号する
content.decode("gbk")

方法2:cmdの符号化をUTF-8またはgbkの後に直接読み書きできるように直接設定する
import sys  
reload(sys)  
sys.setdefaultencoding('utf-8')
print sys.getdefaultencoding()