什麼是URL 編碼/解碼器?

URL 編碼/解碼器可將 URL 中的特殊字元轉換為百分號編碼形式,也可以反向解碼。在處理查詢字串、API 參數或包含空格和特殊字元的 URL 時很實用。

工具提供四種編碼模式。Component 模式(encodeURIComponent)會將斜線與 & 等所有保留字元逐一轉義,適合放進查詢參數值。Full URL 模式(encodeURI)保留結構字元,讓整條網址仍可解析。表單資料模式會把空格編碼為 +,用於 application/x-www-form-urlencoded 提交。RFC 3986 嚴格模式更進一步,還會轉義 encodeURIComponent 略過的 !'()* 子分隔符,因此輸出可放進任何符合規範的網址。Auto-detect 會掃描輸入是否含 %XX 序列並自動判斷要編還是要解;開啟「即時」後輸入時即時轉換;開啟「遞迴解碼」可將二次或三次編碼逐層還原;比較面板則同時呈現同一輸入在四種模式下的結果。

使用方法

  1. 將 URL 或文字字串貼上至輸入欄位中。
  2. 點擊編碼將特殊字元轉換為百分號編碼形式,或點擊解碼進行反向轉換。
  3. 將結果複製到剪貼簿,或使用交換按鈕切換輸入/輸出內容。

何時使用

  • 手動拼接查詢字串時,轉義空格、& 和 = 等符號。
  • 讀到一行帶 % 編碼的伺服器日誌,把它還原成可讀文字。
  • 把含非 ASCII 字元的外語網址貼進純文字郵件而不會壞掉。

結果

一位開發者將 hello world 編碼為 hello%20world,並將 & 編碼為 %26,用作查詢字串參數。

常見問題

encodeURI 與 encodeURIComponent 有什麼差別?
encodeURI 不會碰 /、?、& 和 = 等結構符號,整條 URL 還能運作。encodeURIComponent 把它們全部轉義,適合在查詢字串 ? 之後做為單一參數值使用。
為什麼我解碼後仍有 %20?
原文可能被雙重編碼(再解一次才會回到原文),或來自表單編碼用 + 代表空格。請再解一次,或在解碼前先把 + 換成空格。
哪些字元可以直接出現在 URL 中而不用編碼?
未保留字元:A–Z、a–z、0–9,以及四個符號:連字符、底線、句點、波浪號。其他字元,包括空格、非 ASCII 字母,以及在當前位置不具句法意義的保留字元,都必須做百分號編碼。
把同一字串編碼兩次會壞掉嗎?
會。重複編碼會把每個 % 變成 %25,得解兩次才能還原。如果你串接的是來自其他系統、可能已被編碼的資料,請先解一次,或用旗標標記其狀態。
工具支援中文、阿拉伯文等 Unicode 字元嗎?
支援。瀏覽器內建的 encodeURIComponent 會把任意字元先轉成 UTF-8 位元組序列,再對每個位元組做百分號編碼。解碼則是反向過程,因此「café」可在「caf%C3%A9」之間來回轉換,中文也一樣。

相關工具