国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > Python常见问题 > python解码后乱码的原因是什么?

python解码后乱码的原因是什么?

头像

yang

2020-05-18 15:09:133052浏览 · 0收藏 · 0评论

字符串在Python内部的表示是unicode编码,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。

decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode(‘gb2312’),表示将gb2312编码的字符串str1转换成unicode编码。

encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode(‘utf-8’),表示将unicode编码的字符串str2转换成utf-8编码。

代码如下:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# author: xulinjie time:2017/10/22
import urllib2

request=urllib2.Request(r'http://nhxy.zjxu.edu.cn/')
RES=urllib2.urlopen(request).read()
RES = RES.decode('gb2312').encode('utf-8')//解决乱码
wfile=open(r'./1.html',r'wb')
wfile.write(RES)
wfile.close()
print RES

如果一个字符串已经是unicode了,再进行解码则将出错,因此通常要对其编码方式是否为unicode进行判断,

isinstance(s, unicode)#用来判断是否为unicode。

最终可靠代码:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# author: xulinjie time:2017/10/22
import urllib2

request=urllib2.Request(r'http://nhxy.zjxu.edu.cn/')
RES=urllib2.urlopen(request).read()

if isinstance(RES, unicode):
    RES=RES.encode('utf-8')
else:
    RES=RES.decode('gb2312').encode('utf-8')

wfile=open(r'./1.html',r'wb')
wfile.write(RES)
wfile.close()
print RES

更多Python知识请关注Python自学网

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

汆肉的日常视频| 粗大的蘑菇头刮得又红又肿怎么办 | 9.1国产NBA免费看电影| 人犬兽人在线观看免费完整一| 《丰满的女邻居》播放| 交换的温度2HD| 《伦敦空姐美版2023》| 《金莲浮史》台湾绝版| 人野兽马狗猪大全| 老公弄我一边干一边说粗话视频| 中文在线字幕免费观看电视剧| 法国空姐| 荡货夹的这么紧欠C调教视频 | 7777影院免费观看电视剧大全| 《高压监狱5》完整版| 内衣秀| 尼姑小寡妇免费播放电视剧| 老师你感受到它变大了么视频| 二十电影| B站夫妻进入高峰期需要多久| 成全在线观看免费高清电视剧| 英语班长乖乖挽起裙子怎么| 400入成品短视频| 《交换温柔》免费观看全集完整版| 妈妈说今晚爸爸不回家| 男生把小因因放到女生困里视频| 苍井空《办公室爱欲》| 人犬兽人在线观看免费完整| 女人被公猪钻入子宫有报应吗| 男朋友摸完小花园小肚子有点痛 | 欧美电影免费观看电视剧大全| 歪歪漫画| 四川取消一夫一妻制| 网红大赛| 韩剧《我的瑜伽教练》| 二人努力生猴子免费观看| 《老板娘2》完整版| 憋尿白丝小肚子凸起高冷知乎| 一枪战三母4国语版免费观看 | 百度网址| 美臂