python 2を解決する.7.x Windowsシステムの下でファイルを中国語に書き込んでエラーを報告する
1113 ワード
分析:windowsの下でcmdのデフォルトの符号化はASCII符号化で、windowsの中国語の環境の下で符号化はGBKです
方法1:出力ストリームを保存して保存する時に1つの対文字GBKコードをして、ファイルに出力します
次のように
os.nameはwindowsシステムかLinuxシステムかを判断する
中国語の文字化けしを解決する
書くとき
読み出し時もgbkで復号する
方法2:cmdの符号化をUTF-8または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()