今天思考了一個(gè)問題,為什么網(wǎng)站要進(jìn)行url編碼,查閱了資料說是一種規(guī)范,但個(gè)人還是比較理解的一個(gè)原因就是一個(gè)URL里面可能包含另一個(gè)URL,若直接訪問的話就會(huì)出問題。如下:
# 注意看redirect_uri的內(nèi)容:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=http://api.baidu.com/callback.php&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
# 這樣的話就無法獲取到redirect_uri的內(nèi)容了。
若上面這個(gè)例子進(jìn)行了url編碼的話:
# 就會(huì)生成如下的URL:
# 注意看redirect_uri的內(nèi)容:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=http%3A%2F%2Fapi.baidu.com%2Fcallback.php&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
# 這樣就可以很好的獲取redirect_uri的內(nèi)容了。
Python中的編碼方式:
# Unicode編碼: Python 2中:
# 提供了幾種編碼的方式:
# 1.Unicode編碼方式。
# 2.url編碼方式
# 3.UTF-8編碼GBK編碼
t = u"地址不能為空"
print t.encode("unicode_escape")
對(duì)應(yīng)的解碼方法:
t = "\u5730\u5740\u4e0d\u80fd\u4e3a\u7a7a"
print t.decode("unicode_escape")
js中的編碼方法:
# 1.Unicode編碼
escape("城市房產(chǎn)")
# 輸出
%u57CE%u5E02%u623F%u4EA7
# Unicode解碼
unescape("%u57CE%u5E02%u623F%u4EA7")