URL 編碼/解碼
依你選的用途做一次百分比編碼或解碼,全程在瀏覽器內完成
URL 轉換工作台
先選用途再按下方按鈕。同一段文字在三種用途下的答案本來就不一樣,所以這裡不會依輸入內容替你自動切換。
轉換結果
| 行 | 狀態 | 原文 | 結果 |
|---|
URL 參數檢視
把完整網址或一段 Query 拆成參數清單。只做結構檢視,不會連線、不判斷網址是否安全,也不替你修 URL。
使用說明 3
三種用途各適合什麼,以及常見的疑問
參數值與完整 URI 有什麼差別?
差在「URL 的結構符號要不要一起編掉」。整條網址要保持可用就選完整 URI;把一段文字塞進某個參數裡就選參數值。
同一段 https://a.tw/x y
參數值 https%3A%2F%2Fa.tw%2Fx%20y
完整 URI https://a.tw/x%20y
為什麼空白有時是 %20、有時是 +?
加號是 HTML 表單送出時的老規矩,只在表單參數值那一種規則裡成立。其他地方的空白一律是 %20。把兩種混用最常見的後果是:使用者輸入的加號被對方當成空白吃掉。
表單參數值 a+b c → a%2Bb+c
參數值 a+b c → a%2Bb%20c
為什麼解碼後還有 %?
兩種可能。一是原本就編了兩層,這裡一次只解一層,按「再解碼一層」就會繼續往下。二是你選的是完整 URI —— 那個規則會刻意保留結構符號的編碼形式,不然路徑分隔符會跟資料裡的斜線混在一起。
雙重編碼 %252F → %2F → /
完整 URI %2F → %2F
哪些輸入會解碼失敗?
百分號後面不是兩個十六進位數字(%、%2、%GG),或是那些位元組湊不出合法的 UTF-8(例如 %E5 少了後面兩個位元組)。這種情況這裡只會給錯誤訊息與位置,不會生出一個看起來像成功、其實夾著替換字元的結果。
%E5 是三位元組序列的開頭,缺了後面兩段
簽章網址為什麼不應任意修改?
預簽下載連結與帶 token 的網址,簽章是對「某一種特定寫法」算出來的。重新編碼或重新序列化會改動那串文字,即使語意相同,對方驗簽也會失敗。要調整這類網址請回到產生它的系統重新產生。