瀏覽器在向服務器傳送數據時,會將特殊字符(空格,<, \ 等)、中文(中國)轉碼成類似%20,%3C,%5C、%E4%BD%A0%E4%B8%8D%E8%A1%8C,爲什麼會這樣了?
因爲瀏覽器在將這些特殊字符當作get請求的參數時,會將特殊字符轉碼。什麼是get請求及參數,就是鏈接對應html中的<a>標籤,參數就是http://127.0.0.1:8080/update/000036.html中000036就是參數,如果不轉碼,將發生什麼情況呢?比如我想將/b/c/d一個整體當作參數傳遞,那麼http://127.0.0.1:8080/b/c/d.html,那麼這傳送的究竟是b目錄下的c目錄下的d.html,還是一個參數呢,瀏覽器將會產生歧義,所以瀏覽器將特殊字符都會轉碼,以便識別
那麼如何將瀏覽器轉碼的數據解碼了,這裏就用到了python中urllib.parse.unquote方法解碼,quote方法是實現瀏覽器一樣的解碼
from urllib.parse import quote, unquote
unquote('%E4%B8%AD%E5%9B%BD')
輸出:中國