【Python學習筆記】出現亂碼問題之解決方案彙總
阿新 • • 發佈:2019-02-02
【使用notepad++&cmd】
1.無法輸出中文:
import urllib2
import cookielib
url = "http://www.baidu.com"
print "第一種方式"
response1 = urllib2.urlopen(url)
print response1.getcode()
print len(response1.read())
print response1.read()
報錯
“ File "baidu.py", line 6 SyntaxError: Non-ASCII character '\xe7' in file baidu.py on line 6, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details”
解決方案:
# coding:utf8
import urllib2
import cookielib
url = "http://www.baidu.com"
print u"第一種方式"
response1 = urllib2.urlopen(url)
print response1.getcode()
print len(response1.read())
print response1.read()
或將第一行改為:
# -*- coding: utf-8 -*-
2.cmd編碼方式問題
cmd預設編碼方式為gbk(936),若需改為utf-8輸入chcp 65001,同時將字型改為Lucida Console。
輸入chcp或直接右鍵屬性可檢視當前編碼方式
3.print xx.read()輸出亂碼
查了一下,嘗試使用了decode但仍然沒有解決問題。用pycharm執行正常,猜測是CMD尚未調好。索性放棄= =
附decode方式:
rp = response3.read()
print rp.decode('編碼方式') 如:gb18030
4.pycharm輸出亂碼
在前附程式碼
import sys
reload(sys)
sys.setdefaultencoding('utf8')
但即使這樣cmd執行也仍是亂碼,預備接下來的學習都是用pycharm好了= =目前原理尚未太清晰,以後再去理順