1. 程式人生 > >【Python學習筆記】出現亂碼問題之解決方案彙總

【Python學習筆記】出現亂碼問題之解決方案彙總

【使用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好了= =
目前原理尚未太清晰,以後再去理順