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

猜你喜欢

转载自blog.csdn.net/PPPPluie/article/details/69056595