日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Python中的urllib.quote和Go中的url.QueryEscape关系探讨

發(fā)布時(shí)間:2023/11/27 生活经验 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python中的urllib.quote和Go中的url.QueryEscape关系探讨 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

工作中多次遇到Python版本的簽名算法,需要用Go版本再實(shí)現(xiàn)一遍,這就需要牽扯到Python 2.7中的urllib中的quote,quote_plus和Go中net/url包中的url.QueryEscape的關(guān)系。

下面直接給出它們的關(guān)系:

urllib.quote_plus(str)等同于url.QueryEscape(str), urllib.quote_plus(str)和urllib.quote(str)的關(guān)系如下

rllib.quote(string[, safe])
將string中的特殊字符做轉(zhuǎn)義,但是字母,數(shù)字和'_.-'不會轉(zhuǎn)義,還有safe默認(rèn)的'/'也不會轉(zhuǎn)義, 如果safe為’‘,則'/'也會轉(zhuǎn)義
比如:quote('/~connolly/') yields '/%7econnolly/'

urllib.quote_plus(string[, safe])
類似quote,但是空格被替換為+號,本身的+和/號都會轉(zhuǎn)義

Python 對URL的編解碼操作提供了urllib模塊
urlencode 是針對字典的操作,也可以單獨(dú)對一個(gè)字符串值進(jìn)行編碼,基于是否把空格替換為加號+的不同行為,是把空格轉(zhuǎn)換為%20,還是加號+,分別有quote和quote_plus操作。

下面是我的實(shí)操記錄,這是在python 2.7上的記錄:

下面是Go的實(shí)操記錄:

下面是對應(yīng)的源碼

//description: 這里驗(yàn)證了Go中的url.QueryEscape(str)和Python 2中的urllib.quote_plus(str)效果是一樣的
//note: python 2直接在命令行中進(jìn)行驗(yàn)證即可
//date: 2020-07-06package mainimport ("fmt""net/url"
)func main() {str := "老王a /+ *"fmt.Println(url.QueryEscape(str))
}

從python和Go的實(shí)操對比,可以看出,urllib.quote_plus()和url.QueryEscape()?效果是相同的。

下面是轉(zhuǎn)義對應(yīng)符號:

urllib.quote(str,' ')的處理結(jié)果:

空格=》%20,*=》%2A,/=》%2F,+=》%2B

urllib.quote_plus(str)的處理結(jié)果,這里第二個(gè)參數(shù)是" "或可省略:

空格=》+,?*=》%2A,/=》%2F,+=》%2B

這兩個(gè)函數(shù)對空格的處理是不同的。

總結(jié)

以上是生活随笔為你收集整理的Python中的urllib.quote和Go中的url.QueryEscape关系探讨的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。