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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值