URL 編解碼
對 URL 或查詢參數做 percent-encoding 與解碼
編碼參數值選“參數值編碼”,編碼完整地址選“完整地址編碼”;兩種模式對 /、? 等字符的處理不同。
範例
輸入
a+b c/中文
示例結果
a%2Bb%20c%2F%E4%B8%AD%E6%96%87
示例使用參數模式。普通解碼不會將 + 當成空格。
技術細節與邊界
百分號後兩個十六進制數字表示一個字節。瀏覽器先用 UTF-8 編碼,再轉成 %HH。完整 URL 模式保留 : / ? # 等結構字符;參數模式會編碼它們。JavaScript 的 encodeURIComponent 仍保留 ! ' ( ) *,因此不能直接視為嚴格的 RFC 3986 簽名規範化實現。
關於此工具
對 URL 參數值或完整地址進行百分號編碼與解碼。分別提供 encodeURIComponent 與 encodeURI 模式,便於處理中文、空格、加號、斜槓以及回調地址中的嵌套參數。
適用場景
- 把帶空格 / 中文 / 特殊字元的查詢參數拼進 URL。
- 排查為什麼伺服器接收到 `%20`、`%25` 亂碼。
- 在文件裡貼一段 curl / Postman 指令,希望 URL 合法。
操作步驟
- 把 URL 或參數值貼進輸入框。
- 選擇編碼粒度:encodeURIComponent 或 encodeURI。
- 點擊“編碼”或“解碼”,結果可一鍵複製。
輸入 / 輸出說明
- 輸入
- 任意 UTF-8 字串;解碼時需為合法 percent-encoded 序列。
- 輸出
- percent-encoded 字串或解碼後的原文。
注意事項
encodeURIComponent 最保險,多數場景(查詢值、路徑片段)都用它。
常見問題
- encodeURI 與 encodeURIComponent 差在哪?
- encodeURIComponent 會轉義所有保留字元;encodeURI 保留 URL 結構字元。傳參用前者、拼完整 URL 用後者。
- 為什麼解碼結果出現亂碼?
- 原始字串不是 UTF-8 編碼,或被截斷。檢查編碼前的位元組是否完整。
- 空格應該是 `%20` 還是 `+`?
- 本工具把空格編碼為 %20。application/x-www-form-urlencoded 規則在表單數據或按該規則序列化的查詢參數中使用 +;普通 URL 解碼不自動替換 +。
- 為甚麼解碼後還有 %20?
- 原值可能被編碼了兩次,%2520 解碼一次得到 %20。先確認數據流中的編碼層數;反復解碼可能把本應保留的字符變成分隔符。
- 整個 URL 都用參數值模式編碼會怎樣?
- 冒號、斜槓和問號等也會被編碼,結果適合作為另一個參數的值,而不再是可直接訪問的原始地址。請根據放置位置選擇模式。
相關工具