今天就跟大家聊聊有關(guān)如何在Python中使用urllib模塊對(duì)URL網(wǎng)址中的中文進(jìn)行解碼,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司一直秉承“誠信做人,踏實(shí)做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個(gè)客戶多一個(gè)朋友!專注中小微企業(yè)官網(wǎng)定制,成都做網(wǎng)站、網(wǎng)站制作,塑造企業(yè)網(wǎng)絡(luò)形象打造互聯(lián)網(wǎng)企業(yè)效應(yīng)。URL網(wǎng)址鏈接中的中文編碼說明中文的gbk(GB2312)編碼: 一個(gè)漢字對(duì)應(yīng)兩組%xx,即%xx%xx
中文的UTF-8編碼: 一個(gè)漢字對(duì)應(yīng)三組%xx,即%xx%xx%xx
可以利用百度進(jìn)行URL編碼解碼 默認(rèn)gbk
https://www.baidu.com/s?wd=%E4%B8%AD%E5%9B%BD
python3編碼解碼示例
# -*- coding: utf-8 -*- # @File : urldecode_demo.py # @Date : 2018-05-11 from urllib.request import quote, unquote # 編碼 url1 = "https://www.baidu.com/s?wd=中國" # utf8編碼,指定安全字符 ret1 = quote(url1, safe=";/?:@&=+$,", encoding="utf-8") print(ret1) # https://www.baidu.com/s?wd=%E4%B8%AD%E5%9B%BD # gbk編碼 ret2 = quote(url1, encoding="gbk") print(ret2) # https%3A//www.baidu.com/s%3Fwd%3D%D6%D0%B9%FA # 解碼 url3 = "https://www.baidu.com/s?wd=%E4%B8%AD%E5%9B%BD" ret3 = unquote(url3, encoding='utf-8') print(ret3) # https://www.baidu.com/s?wd=中國
實(shí)例中我們使用到了urllib模塊和urllib.unquote()函數(shù)
import urllib rawurl=xxx url=urllib.unquote(rawurl)
所用模塊:urllib
所用函數(shù):urllib.unquote()
案例
import urllib rawurl = "%E6%B2%B3%E6%BA%90" url = urllib.unquote(rawurl) print url
輸出
河源
urllib.unquote()目的是對(duì)url編碼進(jìn)行解碼,與該函數(shù)對(duì)應(yīng)的是編碼函數(shù)urllib.quote()
>>> import urllib >>> urllib.quote("河源") '%E6%B2%B3%E6%BA%90問題擴(kuò)展
URL為何要編碼、解碼?
通常如果一樣?xùn)|西需要編碼,說明這樣?xùn)|西并不適合傳輸。原因多種多樣,如Size過大,包含隱私數(shù)據(jù)。對(duì)于Url來說,之所以要進(jìn)行編碼,是因?yàn)閁rl中有些字符會(huì)引起歧義。
例如,Url參數(shù)字符串中使用key=value鍵值對(duì)這樣的形式來傳參,鍵值對(duì)之間以&符號(hào)分隔,如/s?q=abc&ie=utf-8。如果你的value字符串中包含了=或者&,那么勢(shì)必會(huì)造成接收Url的服務(wù)器解析錯(cuò)誤,因此必須將引起歧義的&和=符號(hào)進(jìn)行轉(zhuǎn)義,也就是對(duì)其進(jìn)行編碼。
又如,Url的編碼格式采用的是ASCII碼,而不是Unicode,這也就是說你不能在Url中包含任何非ASCII字符,例如中文。否則如果客戶端瀏覽器和服務(wù)端瀏覽器支持的字符集不同的情況下,中文可能會(huì)造成問題。
看完上述內(nèi)容,你們對(duì)如何在Python中使用urllib模塊對(duì)URL網(wǎng)址中的中文進(jìn)行解碼有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
網(wǎng)站欄目:如何在Python中使用urllib模塊對(duì)URL網(wǎng)址中的中文進(jìn)行解碼-創(chuàng)新互聯(lián)
本文路徑:http://aaarwkj.com/article8/iegop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、企業(yè)網(wǎng)站制作、全網(wǎng)營銷推廣、外貿(mào)建站、搜索引擎優(yōu)化、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容