本文實例講述了在windows指令視窗下執行Python檔產生亂碼的問題, 供大家參考:
Ps: 如有錯誤還請指正, 歡迎交流學習
# -*- coding:utf-8 -*-str = "彦雪"print str
執行後, 輸出結果如下:
褰﹂洩
亂碼結果和大家可能不同, 不過也都是亂碼啦!!
##問題分析Python2 預設編碼為"ascii", ascii編碼不包含中文字元如果在其中有中文字元的話, Python解釋器一般會報錯.
但如果指定了以UTF-8 編碼, Python就不再報錯.
"# -
- coding:utf-8 --" 是指定Python原始碼以UTF-8 編碼。
由於Python中不允許直接將utf-8 轉為gbk, 因此需要先將utf-8 轉為unicode 再轉為gbk
當需要打印輸出時,Python 會先調取字元輸出程式(命令列或輸出函數)的編碼格式,然後將該字串編碼成字元輸出程式所用的編碼(這樣字元輸出程式就不會因為認不出編碼而出現亂碼),接著字元輸出程式將編碼後的字元輸出到目的地。解決方法
# 方法一 中文前加u, 告诉Python解释器后面的是个unicode编码str = u"彦雪"
# 方法二 str.decode('utf-8') 以utf-8编码对字符串 str 进行解码, 获取unicodestr = "彦雪".decode('utf-8')
# 方法三 unicode(str, 'utf-8') 将字符串 str 以utf-8编码解码, 获取unicodestr = unicode('彦雪','utf-8')在windows指令視窗raw_input 顯示亂碼使用raw_input 需要將中文轉換為系統編碼, 方法如下列所示
# 方法1 str.encode("gbk") 将unicode转为gbk 编码content = raw_input(u"输入内容: ".encode("gbk"))
# 方法2content = raw_input("输入内容: ".decode('utf-8').encode("gbk"))
# 方法3content = raw_input(unicode('输入内容: ','utf-8').encode("gbk"))##雖然這種寫法很方便, 但是跨平台效果較差, 個人不推薦這種寫法, 建議中文字符和raw_input 分開寫. 通過其他手段達到在同一行的目的
#擴展閱讀
以上是Python2.7 在windows指令視窗 輸出中文亂碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!