標籤:windows環境下python v2.7.9 notepad++編寫程式中涉及中文 執行時cmd中顯示亂碼的解決辦法
Windows環境下Python v2.7.9,NotePad++編寫程式中涉及中文,執行時CMD中顯示亂碼的解決辦法
例如:
1.使用NotePad++,以預設的“以 UTF-8無 BOM 格式編碼”編寫:
print "一加一等於二"
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6E/AE/wKiom1WCbD_TKYcjAALnybRC8JI793.jpg" title="1.png" alt="wKiom1WCbD_TKYcjAALnybRC8JI793.jpg" />
直接運行後CMD報錯:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6E/AA/wKioL1WCbfvSJZIQAAFePCxiZi4179.jpg" title="2.png" alt="wKioL1WCbfvSJZIQAAFePCxiZi4179.jpg" />
但是在IDLE中顯示正常:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6E/AE/wKiom1WCbFmBfIS4AAEQrgPI0OM924.jpg" title="3.png" alt="wKiom1WCbFmBfIS4AAEQrgPI0OM924.jpg" />
在檔案第一行加入注釋:
# _*_coding:utf-8_*_
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6E/AE/wKiom1WCbGKwUFouAACwvVR-yNU953.jpg" title="4.png" alt="wKiom1WCbGKwUFouAACwvVR-yNU953.jpg" />
運行後CMD顯示亂碼,IDLE依然正常:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6E/AA/wKioL1WCbh2yrYjiAAA3QTkD2IY116.jpg" title="5.png" alt="wKioL1WCbh2yrYjiAAA3QTkD2IY116.jpg" />
在字串前加u(Unicode編碼):
# _*_coding:utf-8_*_print u"一加一等於二"
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6E/AA/wKioL1WCbinztT-uAACnrBzQfzY696.jpg" title="6.png" alt="wKioL1WCbinztT-uAACnrBzQfzY696.jpg" />
運行後正常,IDLE依然正常:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6E/AA/wKioL1WCbjWwp1SFAAArGa2XrXk726.jpg" title="7.png" alt="wKioL1WCbjWwp1SFAAArGa2XrXk726.jpg" />
2. 使用NotePad++,以“以 ANSI 格式編碼”編寫:
# _*_coding:utf-8_*_print u"一加一等於二"
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6E/AE/wKiom1WCbLCT_XMbAALxHddSljQ286.jpg" title="以 ANSI 格式編碼.png" alt="wKiom1WCbLCT_XMbAALxHddSljQ286.jpg" />
運行後報錯:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6E/AE/wKiom1WCbMeSJdWRAACtUCVGpL0128.jpg" title="9.png" alt="wKiom1WCbMeSJdWRAACtUCVGpL0128.jpg" />
去掉字串前的u(Unicode編碼):
# _*_coding:utf-8_*_print "一加一等於二"
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6E/AE/wKiom1WCbNbBv0CFAACvl2LQ0k4205.jpg" title="10.png" alt="wKiom1WCbNbBv0CFAACvl2LQ0k4205.jpg" />
運行後正常:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6E/AA/wKioL1WCbpCxkJrjAAAz5hEI_BA781.jpg" title="11.png" alt="wKioL1WCbpCxkJrjAAAz5hEI_BA781.jpg" />
原因:
Windows的命令提示字元CMD和WindowsPowerShell預設編碼是ANSI,導致對UTF-8編碼不能正常顯示
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6E/AE/wKiom1WCbO6Cx_9JAAE-OGVwoXU773.jpg" style="float:none;" title="12.png" alt="wKiom1WCbO6Cx_9JAAE-OGVwoXU773.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6E/AA/wKioL1WCbp_T8A-sAAEodn0ZttM369.jpg" style="float:none;" title="13.png" alt="wKioL1WCbp_T8A-sAAEodn0ZttM369.jpg" />
網上有種方法使用chcp 65001命令將CMD的預設編碼頁設定為UTF-8650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6E/AA/wKioL1WCbrWSiy8CAABLyD4YZGk502.jpg" title="14.png" alt="wKioL1WCbrWSiy8CAABLyD4YZGk502.jpg" />
經測試回合Python任然有問題。
直接運行Python程式亂碼
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6E/AA/wKioL1WCbr2S4jfYAABY30UF0w8348.jpg" title="15.png" alt="wKioL1WCbr2S4jfYAABY30UF0w8348.jpg" />
取消# _*_coding:utf-8_*_後報錯:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6E/AE/wKiom1WCbRfTGOT-AACTOK-2Azg932.jpg" title="16.png" alt="wKiom1WCbRfTGOT-AACTOK-2Azg932.jpg" />
在字串前加u(Unicode編碼),依然報錯:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6E/AE/wKiom1WCbSDxEJgyAACxLFQJMqE024.jpg" title="17.png" alt="wKiom1WCbSDxEJgyAACxLFQJMqE024.jpg" />
還原CMD預設設定,註冊版中刪除HKEY_CURRENT_USER\Console 項即可。
本文出自 “Hello3389的部落格” 部落格,請務必保留此出處http://hello3389.blog.51cto.com/1171990/1663154
Windows環境下Python v2.7.9,NotePad++編寫程式中涉及中文,執行時CMD中顯示亂碼的解決辦法