Python使用urllib模塊對URL網(wǎng)址中的中文編碼與解碼實例詳解
URL網(wǎng)址鏈接中的中文編碼說明
中文的gbk(GB2312)編碼: 一個漢字對應兩組%xx,即%xx%xx
中文的UTF-8編碼: 一個漢字對應三組%xx,即%xx%xx%xx
可以利用百度進行URL編碼解碼 默認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=中國
實例中我們使用到了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()目的是對url編碼進行解碼,與該函數(shù)對應的是編碼函數(shù)urllib.quote()
>>> import urllib >>> urllib.quote("河源") '%E6%B2%B3%E6%BA%90
問題擴展
URL為何要編碼、解碼?
通常如果一樣東西需要編碼,說明這樣東西并不適合傳輸。原因多種多樣,如Size過大,包含隱私數(shù)據(jù)。對于Url來說,之所以要進行編碼,是因為Url中有些字符會引起歧義。
例如,Url參數(shù)字符串中使用key=value鍵值對這樣的形式來傳參,鍵值對之間以&符號分隔,如/s?q=abc&ie=utf-8。如果你的value字符串中包含了=或者&,那么勢必會造成接收Url的服務(wù)器解析錯誤,因此必須將引起歧義的&和=符號進行轉(zhuǎn)義,也就是對其進行編碼。
又如,Url的編碼格式采用的是ASCII碼,而不是Unicode,這也就是說你不能在Url中包含任何非ASCII字符,例如中文。否則如果客戶端瀏覽器和服務(wù)端瀏覽器支持的字符集不同的情況下,中文可能會造成問題。
更多關(guān)于Python使用urllib模塊對URL編碼與解碼實例請查看下面的相關(guān)鏈接
相關(guān)文章
用Python3通過PyCharm上傳代碼到Git服務(wù)器的詳細過程
上傳代碼到服務(wù)器,如果不知道的情況下還用傳統(tǒng)的方式上傳很麻煩,現(xiàn)在很多IDE都提供上傳代碼的功能,例如:VSCode,PyCharm等等,本文講解的是PyCharm,需要的朋友可以參考下2024-03-03python點云地面點濾波(Progressive Morphological Filter)算法介紹(PCL庫)
這篇文章主要介紹了python點云地面點濾波(Progressive Morphological Filter)算法介紹(PCL庫),了解膨脹/腐蝕這兩個基礎(chǔ)操作,可以通過對其進行簡單組合來形成開/閉操作,需要的朋友可以參考下2021-08-08python 拷貝特定后綴名文件,并保留原始目錄結(jié)構(gòu)的實例
下面小編就為大家分享一篇python 拷貝特定后綴名文件,并保留原始目錄結(jié)構(gòu)的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04python圖片處理庫Pillow實現(xiàn)簡單PS功能
Python 屆處理圖片最強的庫是 PIL(Python Image Library),但由于該庫只支持 2.x 版本,在此基礎(chǔ)上做了擴展,出了一個兼容 3.x 的版本也就是 Pillow,因此,我們今天要用的庫就是Pillow2021-11-11