URL 編解碼

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 合法。

操作步驟

  1. 把 URL 或參數值貼進輸入框。
  2. 選擇編碼粒度:encodeURIComponent 或 encodeURI。
  3. 點擊“編碼”或“解碼”,結果可一鍵複製。

輸入 / 輸出說明

輸入
任意 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 都用參數值模式編碼會怎樣?
冒號、斜槓和問號等也會被編碼,結果適合作為另一個參數的值,而不再是可直接訪問的原始地址。請根據放置位置選擇模式。

相關工具

URL 編解碼 · 對 URL 或查詢參數做 percent-encoding 與解碼
URL 編解碼 — 工具示意圖 · dayeku.com