中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python解碼后為什么會亂碼

發布時間:2020-07-07 16:40:23 來源:億速云 閱讀:154 作者:清晨 欄目:編程語言

這篇文章主要介紹python解碼后為什么會亂碼,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

字符串在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解碼后為什么會亂碼的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

日土县| 连平县| 泸定县| 绥芬河市| 黑山县| 文安县| 张掖市| 丰原市| 和平县| 白水县| 霍山县| 仁怀市| 东宁县| 武宣县| 民勤县| 元朗区| 平利县| 湟中县| 潜山县| 苍山县| 云浮市| 天气| 佛坪县| 宽甸| 綦江县| 资兴市| 阜南县| 平谷区| 油尖旺区| 会宁县| 融水| 芜湖县| 临沧市| 邳州市| 房产| 湖南省| 报价| 浦北县| 额敏县| 漳浦县| 金乡县|