python處理瀏覽器URL引數編碼

2021-08-31 22:58:06 字數 796 閱讀 1775

為了方便記錄、收藏,一般情況下,搜尋功能會採用http get方式提供,類似的url:

/search?keyword=測試

在獲取keyword引數的時候,頁面表單的提交的引數將會是預期的編碼格式,但是如果是直接用「/search?keyword=測試」通過瀏覽器位址列訪問,瀏覽器將會根據系統環境(設定)對引數進行編碼(windows下,ff,opera一般為gbk;linux下,一般為utf-8),gbk/gb2312的編碼格式,在**中將會導致一些錯誤,如: 字串亂碼問題、mongodb統一使用utf-8做為儲存編碼。

開始想嘗試python中如何檢視字串的編碼格式,但是沒有找到適合的方法,現採取如下方式,對引數進行編碼(針對大多數的中文使用者)

def _process_keyword_coding(self, keyword):

try:

keyword = unicode(keyword, "utf-8")

except:

keyword = keyword.decode("gbk").encode("utf-8")

return keyword

頁面的流程下,是可以通過utf-8編碼的,否則將採取gbk方式進行解碼,然後再轉換成統一的utf-8格式,(當前使用的是python 2.6, python3.0 str預設情況下將會統一採取unicode)

這裡筆記下,如果有更好的方法,請大家分享 :)

瀏覽器URL編碼

1 瀏覽器編碼 ie6.0及以前版本,通過在位址列裡輸入url時,使用的預設編碼是gbk ie7.0 ie8版本,通過在位址列裡輸入url時,使用的預設編碼是utf 8,也可以在工具 高階選項裡修改 2 中文引數編碼例項 string version request.getheader user a...

瀏覽器快取url請求

最近遇到瀏覽器快取url的問題,google了一把,學到不少東西,結合網上其他人文章拼湊一篇,供大家交流。一 防止url被瀏覽器快取 根據 http 規範,get 用於資訊獲取,而且應該是冪等的。也就是說,當使用相同的url重複get請求會返回預期的相同結果時,get方法才是適用的。當對乙個請求有 ...

瀏覽器快取url請求

一 防止url被瀏覽器快取 根據 http 規範,get 用於資訊獲取,而且應該是冪等的。也就是說,當使用相同的url重複get請求會返回預期的相同結果時,get方法才是適用的。當對乙個請求有 的時候 例如,提交資料註冊新使用者時 應該使用post請求而不是get。所以瀏覽器會對get請求做快取處理...