亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

如何在Python中使用urllib模塊對URL網址中的中文進行解碼

發布時間:2021-03-18 16:42:36 來源:億速云 閱讀:277 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關如何在Python中使用urllib模塊對URL網址中的中文進行解碼,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

URL網址鏈接中的中文編碼說明

中文的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()函數

import urllib
rawurl=xxx
url=urllib.unquote(rawurl)

所用模塊:urllib

所用函數:urllib.unquote()

案例

import urllib
rawurl = "%E6%B2%B3%E6%BA%90"
url = urllib.unquote(rawurl)
print url

輸出

河源

urllib.unquote()目的是對url編碼進行解碼,與該函數對應的是編碼函數urllib.quote()

>>> import urllib
>>> urllib.quote("河源")
'%E6%B2%B3%E6%BA%90

問題擴展

URL為何要編碼、解碼?

通常如果一樣東西需要編碼,說明這樣東西并不適合傳輸。原因多種多樣,如Size過大,包含隱私數據。對于Url來說,之所以要進行編碼,是因為Url中有些字符會引起歧義。

例如,Url參數字符串中使用key=value鍵值對這樣的形式來傳參,鍵值對之間以&符號分隔,如/s?q=abc&ie=utf-8。如果你的value字符串中包含了=或者&,那么勢必會造成接收Url的服務器解析錯誤,因此必須將引起歧義的&和=符號進行轉義,也就是對其進行編碼。

又如,Url的編碼格式采用的是ASCII碼,而不是Unicode,這也就是說你不能在Url中包含任何非ASCII字符,例如中文。否則如果客戶端瀏覽器和服務端瀏覽器支持的字符集不同的情況下,中文可能會造成問題。

看完上述內容,你們對如何在Python中使用urllib模塊對URL網址中的中文進行解碼有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

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

AI

凤城市| 蒙城县| 永兴县| 霍林郭勒市| 姜堰市| 东宁县| 河北省| 伽师县| 赤壁市| 任丘市| 桐梓县| 朝阳县| 石屏县| 海城市| 武隆县| 酒泉市| 垣曲县| 蒙阴县| 通海县| 明水县| 乐安县| 遂宁市| 贵港市| 宣武区| 达拉特旗| 砀山县| 平和县| 东方市| 富源县| 隆德县| 大新县| 淮阳县| 额济纳旗| 秦皇岛市| 大洼县| 高邑县| 万源市| 依兰县| 金沙县| 太原市| 高邮市|