跳至內容

URL 編碼/解碼

百分號編碼 / 解碼 URL 元件、完整 URI、與 form body。

輸入

這個工具的用途

百分號編碼(RFC 3986)把會讓 URL 解析器困惑的字元——空白、?&#、非 ASCII 字母——轉成安全的 %XX 形式。本工具支援編碼 / 解碼 URL 元件、完整 URI、與 HTML form body(空白變 + 的變體)。所有運算都在你的瀏覽器內完成——資料不會上傳。

使用步驟

選擇編碼解碼,挑符合場景的變體,貼上輸入即可。

Component(最常用):

輸入:hello world & friends
輸出:hello%20world%20%26%20friends

完整 URI(保留 : / ? & 等結構字元):

輸入:https://example.com/path?q=hi there
輸出:https://example.com/path?q=hi%20there

Form(空白 → +):

輸入:hello world
輸出:hello+world

限制與邊界情況

  • 把值放在 URL 裡面(query 值、path 段)時用 Component;要編碼整段 URL 並保留 : / ? & = # 等結構字元時用 URI
  • Form 對應 HTML form POST 的 application/x-www-form-urlencoded——和 Component 唯一差別是空白變成 +
  • 解碼遇到格式錯誤的 escape(落單的 %、非 hex 字元配對)會顯示確切的位置。binary 資料請改用 Base64 工具。

常見問題

我的資料會送到伺服器嗎?
不會。編碼和解碼都完全在你的瀏覽器內進行,本頁從不上傳輸入。
Component 和 URI 差在哪?
URI-component 編碼會 escape URL 結構字元(: / ? & = #)。URI 編碼則保留它們讓 URL 仍可解析。Query 值用 Component,整段 URL 用 URI。
什麼時候要用 Form(+ 表示空白)?
要組 application/x-www-form-urlencoded 的 body 時用 Form——這就是 HTML form POST 和 URLSearchParams.toString() 的格式。和 Component 唯一差別是 + ↔ 空白。
支援 Unicode(中文、emoji)嗎?
支援。輸入先以 UTF-8 編碼再做百分號 escape,所以「你好」→ %E4%BD%A0%E5%A5%BD、👋 → %F0%9F%91%8B 都能完整往返。
為什麼解碼失敗顯示「URI malformed」?
輸入裡有落單的 % 或不合法的 escape(例如 %2G——G 不是 hex digit)。錯誤訊息會指出錯誤偏移位置。