URL 編碼與解析
URL 編碼與解碼,並拆解網址結構與查詢參數。
編碼/解碼
輸入或貼上文字後即時轉換。「交換」會把輸出移回輸入並反轉模式。按 Ctrl/⌘ + Enter 可重新執行。
網址解析
輸入網址即可拆解成各個部分。
組成部分
查詢參數
| # | 鍵 | 值 |
|---|
這個網址沒有查詢參數。
URL 編碼的原理
網址只能包含一小部分 ASCII 字元。空格、中文以及 &、=、? 等保留符號都必須經過百分比編碼:先把文字轉成 UTF-8 位元組,再把每個位元組寫成 % 加兩個十六進位數字,所以空格會變成 %20,「台」會變成 %E5%8F%B0。這個工具直接呼叫瀏覽器內建的 encodeURIComponent、encodeURI、decodeURIComponent 與 decodeURI,結果與 JavaScript 程式產生的完全相同。下方的網址解析器使用標準 URL API,把網址拆成協定、帳號密碼、主機、連接埠、路徑、查詢字串與片段,並列出解碼後的查詢參數鍵與值,重複的鍵也會保留。
該用哪一種模式?
- encodeURIComponent 會把字母、數字與 - _ . ! ~ * ' ( ) 以外的所有字元編碼,適合用在要塞進網址的單一查詢值或路徑片段。
- encodeURI 會保留構成網址結構的字元(: / ? # & = + @ ;),適合整理一條已經組好的完整網址。
- 遇到格式錯誤的輸入(例如 % 後面沒有兩個十六進位數字)解碼會失敗,工具會明確提示,而不是產生亂碼。
- 查詢字串裡的 + 通常代表空格(表單編碼),解析器依此規則處理,所以 q=iPhone+15 會顯示為「iPhone 15」。encodeURIComponent 不會產生 +,空格一律寫成 %20。
- 國際化網域名稱(中文網址)會以 Punycode(xn--…)顯示,這正是瀏覽器實際送出的形式。
隱私
所有處理都在瀏覽器內完成,貼上的網址(包含其中的 token 或密碼)不會傳送到任何地方。