歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Python處理浏覽器URL參數編碼

Python處理浏覽器URL參數編碼

日期:2017/3/1 10:27:19   编辑:Linux編程
為了方便記錄、收藏,一般情況下,搜索功能會采用http GET方式提供,類似的URL:
  1. /search?keyword=測試
整個webapp統一采用UTF-8格式編碼(包括頁面Content-Type)
  1. <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
在獲取keyword參數的時候,頁面表單的提交的參數將會是預期的編碼格式,但是如果是直接用“/search?keyword=測試”通過浏覽器地址欄訪問,浏覽器將會根據系統環境(設置)對參數進行編碼(windows下,FF,Opera一般為GBK;linux下,一般為UTF-8),GBK/GB2312的編碼格式,在代碼中將會導致一些錯誤,如: 字符串亂碼問題、MongoDB統一使用UTF-8做為存儲編碼。

開始想嘗試python中如何查看字符串的編碼格式,但是沒有找到適合的方法,現采取如下方式,對參數進行編碼(針對大多數的中文用戶)
  1. def _process_keyword_coding(self, keyword):
  2. try:
  3. keyword = unicode(keyword, "utf-8")
  4. except:
  5. keyword = keyword.decode("gbk").encode("utf-8")
  6. return keyword
頁面的流程下,是可以通過utf-8編碼的,否則將采取GBK方式進行解碼,然後再轉換成統一的UTF-8格式,(當前使用的是python 2.6, python3.0 str默認情況下將會統一采取unicode)

這裡筆記下,如果有更好的方法,請大家分享
Copyright © Linux教程網 All Rights Reserved