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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

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

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

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

下面直接給出它們的關系:

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

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

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

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

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

下面是Go的實操記錄:

下面是對應的源碼

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

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

下面是轉義對應符號:

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

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

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

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

這兩個函數對空格的處理是不同的。

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。