%E7%AC%AC%E4%B8%80%E6%AC%A1
import urllib c='%E7%AC%AC%E4%B8%80%E6%AC%A1' e=urllib.unquote(c) c='1' f=urllib.unquote(c) print e #輸出結果: 第一次
print f # 輸出結果: 1
上面的代碼是在Windows下Pycharm裏測試輸出的,結果符合預期.前端
在開發代碼中寫入後,使用postman進行測試的時候,是能夠的.但當和前端頁面進行聯合調試的時候,就出現了問題.post
import urllib def select_seller(request,keyword): logging.debug(keyword) #logging.debug 接收到的參數%E7%AC%AC%E4%B8%80%E6%AC%A1
keyword = urllib.unquote(keyword) logging.debug(keyword) # 解碼後:第ä¸<80>次
import urllib def select_seller(request,keyword): logging.debug(type(keyword)) #<type 'unicode'>
keyword = urllib.unquote(keyword)
因此解決辦法,是使用str()將接收到的參數轉化爲str類型測試
import urllib def select_seller(request,keyword): logging.debug(type(keyword)) # <type 'unicode'>
keyword = urllib.unquote(keyword) logging.debug(keyword) # 解碼後:第ä¸<80>次
keyword = str(keyword) logging.debug(type(keyword)) # <type 'str'>
keyword = urllib.unquote(keyword) logging.debug(keyword) # 解碼後:第一次
這樣結果就是符合預期的中文關鍵字,能夠進行下一步的操做了.url
至於上面的亂碼問題,由於接收到的參數是Unicode類型,urllib.unquote()處理後,依然是Unicode類型.可是把接收到參數中的」%」替換成了’\x’,變成了ascii碼字符串,能夠參考'https://www.ascii-code.com/',裏面對應的值,就能夠知道結果爲什麼出現.spa