URL 高階編解碼

🔤 URL Advanced Encode/Decode

Encode or decode URLs and query strings with advanced handling for special characters.

📐 工作原理與說明
URL 百分號編碼與解碼。
  • 規則:除 unreserved 字元(A-Za-z0-9 與 - _ . ~)外,其餘位元組編碼為 %HH。
  • 兩個函式:encodeURI 保留 URL 結構字元(: / ? #),encodeURIComponent 對全部保留字元編碼,適用於引數值。
  • 空格:路徑中應為 %20;表單編碼(application/x-www-form-urlencoded)中可寫作 +。
  • 中文:必須先按 UTF-8 取位元組,再逐位元組做百分號編碼。

📖 模式說明

encodeURIComponent: 編碼所有特殊字元(除 A-Za-z0-9-_.!~*'())

encodeURI: 保留 URL 結構字元 (:/?#[]@!$&'()*+,;=)

Form: 表單提交,空格 → +

Query: 與 Form 類似,用於查詢字串

📚 深度解析:URL 高階編解碼

💡 常見使用場景

  • 需要控制編碼字元集(如保留 / 或 :)時做精細化編碼。
  • 生成簽名或回撥地址時需要精確控制編碼範圍:保留 / 與 : 而只編碼引數值,避免因編碼不一致導致簽名校驗失敗。
編碼保留斜槓
輸入 `a/b` 選擇“編碼所有非安全字元”→ 輸出 `a%2Fb`;選擇保留路徑分隔符則保持 `a/b`。

❓ 常見問題(FAQ)

什麼時候要保留斜槓?
編碼路徑段時通常保留 /,編碼查詢值時應編碼 /。
為什麼兩次編碼結果不同?
因為 encodeURI 與 encodeURIComponent 的編碼範圍不同:前者保留 URL 結構字元(: / ? # 等),用於編碼整個 URL;後者連這些也編碼,用於編碼引數值。混用會導致簽名不一致或解析錯誤。規則很簡單:編碼「整個 URL」用前者,編碼「引數值」用後者。
⚠️ 使用說明與注意事項
📖關於「URL 高階編解碼」 ▼

📝工具簡介

URL 高階編解碼。專為開發者打造的線上工具,純前端執行,程式碼不離開瀏覽器。