国产成人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自学网

关注

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

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

老人玩小处雌女视频的意义| 跳舞| 坤坤寒进桃子里在线看歌词| 蜜桃成时熟| CSGO暴躁阿姨高清大片1-4.. | 教练车内含乳挺进她漫画| FOAM| 夫妻二人世界免费看第一集 | 《不忠》免费观看完整版电影 | 9.1芒果浏览器| 男人手伸进我内衣揉我胸到爽| 庄达菲| 金装律师第二季| 白日梦我小说全文免费阅读| 亚洲无线一线二线三线区别| 狗配人的大片视频大全| 双男主MV大片| 女列车长丰满乳峰| 女性开过苞后最明显的变化| 交换朋友的老婆2中字谜给看| 《暴力强伦轩》| 日韩精品一区| 亚洲AV天堂久久精品9966| 免费观看大片哔哩哔哩| 国产精品亚洲AV三区八戒漫画| 公厕少年NASA动漫免费观看| 美国性伦1980禁忌禁忌| 秘书奶头好大下面好紧| 教室停电插班花原文小说| 扌吴辶鬲的背景故事| 华为新品手机发布| 女同学裸睡我把她奶头摸硬了| 一品国精和二品国精的文化意义 | 妈妈的朋友6| 丁香花影院免费观看电视剧哈尔滨| 《火车服务》免费观看| 一个女的肛门塞了8个小皮球| 雨后小故事| 15岁初中生免费播放电视剧| 黑人与女人猛交XxXX| 日本大片又大又好看的PPT