混亂的 URLEncode 說明了為什麼要使用URLEncode,
有興趣可以去讀一下。
常用的語言函式庫:
(擷錄至混亂的URLEncode一文中)
因為有這樣的差異,所以開發人員在使用函式庫的時候常常會搞混什麼時候該用/不該用什麼函式。
以 PHP 來說就分為兩組函式:
urlencode
/urldecode
簡單地說就是以 HTTP 所使用的application/x-www-form-urlencoded
的編碼規則,也就是會將空白字元編碼成+
而不是%20
。rawurlencode
/rawurldecode
按照 RFC 3986 所定義的方式來作編碼。
Python 版本的話就是:
urllib.urlencode
/urllib.urldecode
會把空白字元編碼成+
- 目前要使用 Python 3 以後的
urllib.parse.urlencode
才會按照 RFC 3986 的方式來作編碼,若是 2.x 的版本就要另外處理或是找 3rd-party 資料庫來做。
JavaScript 的
encodeURI
或是 encodeURIComponent
(兩者僅相差一些保留字是否要作編碼,如 #
)目前則是都使用 RFC 3986 的方式來作編碼,所以要作 application/x-www-form-urlencoded
的編碼時(AJAX POST),就要自己把 %20
替換成 +
(jQuery 目前的程式碼就是這樣做的)
Java 的
java.net.URLEncoder.encode
這個 method 也是編碼成 application/x-www-form-urlencoded
的方式,如果要遵照 RFC 3986 的定義,則可以自行再把 +
替換成 %20
即可。測試URL decode/encode的網站
http://meyerweb.com/eric/tools/dencoder/
ASCII(American Standard Code for Information Interchange,美國資訊交換標準代碼)字元表格
http://zh.wikipedia.org/wiki/ASCII
http://zh.wikipedia.org/wiki/EASCII
感謝分享。 但是與meyerweb的解碼/編碼工具相比,還有另一種工具
回覆刪除url-decode.com
該工具通過採用URL編碼字符串並通過解碼特殊字符將其轉換為常規URL字符串來工作。 普通URL可以使用PHP url_encode函數進行編碼,也可以通過javascript進行編碼,或者使用我們的Online URL Encode函數進行編碼。 編碼的URL僅包含那些可以通過查詢字符串輕鬆傳遞的字符,以避免在瀏覽器字符串和URL中混淆瀏覽器。
該網站還在一個域內提供與數字實用程序,單位轉換器,開發人員,字符串實用程序,轉換器和IP工具相關的工具。