系統是Windows7.在cmd或者powershell上使用Python2/3運行含有中文的Python源文件,都有中文亂碼問題。
目前找到的有效解決方法是先對中文按照指導的編碼方式解碼,然后按照指定的編碼方式編碼字符串,當然對於Python2要加上使用utf-8的注解,例如:
(該解決方案來自於http://www.runoob.com/python/python-chinese-encoding.html 的筆記)
#!/usr/bin/python
# -*- coding:utf-8 -*-
s = "你好,世界!"
print s.decode("utf-8").encode("gbk") #先按照utf-8解碼,再按照gbk編碼
原因是windows 命令提示符的顯示編碼為 gbk 編碼。
在命令提示符下使用 chcp 查詢編碼。
"活動代碼頁:936" 代表命令提示符的編碼為 "gbk"
"活動代碼頁:65001" 代表命令提示符的編碼為 "utf-8"
之前試圖直接修改筆者的cmd活動代碼頁,但不論是通過可視化修改還是修改注冊表,網上的資料都不對筆者的電腦有效(可視化沒有對應的按鈕,注冊表找不到對應的字段)。而在cmd上直接使用chcp 65001跳到對應的活動窗口時運行Python文件還是亂碼。
不知道有沒有更好的合適筆者的方法,希望分享給筆者,非常感謝,因為先解碼再編碼的方式不太友好。
為了得到而努力
2019-03-28
轉載請注明來處