URL 編碼/解碼器
將 URL 編碼以安全傳輸,或將百分比編碼的 URL 解碼回可讀文字。支援完整 URL 或僅元件編碼模式。
| 原始字元 | URL 編碼 | 說明 |
|---|
什麼是 URL 編碼?
URL 編碼(又稱「百分比編碼」,Percent-encoding)是一種將特殊字元轉換為 %XX 格式的編碼機制,其中 XX 為字元的十六進位 ASCII 或 UTF-8 碼值。
URL 只能使用特定的 ASCII 字元集合。當 URL 中包含空白、中文、日文、特殊符號(如 & # ? =)時,必須先進行編碼,才能確保瀏覽器和伺服器正確解析。
- 空白字元 (space) 會被編碼為 %20
- 中文「台灣」會被編碼為 %E5%8F%B0%E7%81%A3
- & 會被編碼為 %26
- # 會被編碼為 %23
如何使用此工具?
使用本工具只需三個步驟:
- 步驟一:選擇「編碼」或「解碼」模式。
- 步驟二:在輸入框貼上你的 URL 或文字(編碼模式);或貼上百分比編碼字串(解碼模式)。
- 步驟三:結果即時顯示,點擊「複製」按鈕即可使用。
兩種編碼模式的差異:
- encodeURIComponent(僅元件):會對幾乎所有特殊字元編碼,包含
/ ? # &等,適合編碼 URL 的某個參數值。 - encodeURI(完整 URL):保留 URL 結構字元(如
:// / ? = &),適合對整個 URL 進行編碼。
常見使用情境
- 在 API 請求中傳遞包含特殊字元的查詢參數
- 產生安全的重新導向 URL(redirect URL)
- 在 HTML 表單提交含中文或特殊字元的資料
- 解析後端收到的 URL 編碼請求,還原為可讀文字
- 製作電子郵件中的追蹤連結(utm 參數)
- 處理 OAuth / JWT 中的回呼 URL(callback_url)
常見問題
Q:encodeURI 和 encodeURIComponent 有什麼差別?
encodeURI 會保留 URL 結構性字元(如 : / ? # [ ] @ ! $ & ' ( ) * + , ; =),適合對完整 URL 編碼。encodeURIComponent 會對更多字元進行編碼(包含上述結構字元),適合對 URL 中的單一參數值編碼。
Q:空白為什麼有時會變成 + 號,有時是 %20?
在傳統 HTML 表單(application/x-www-form-urlencoded)中,空白會被編碼為 +;而在標準 URL 百分比編碼中,空白應為 %20。本工具使用標準的 %20 編碼,與現代 Web 標準一致。
Q:中文字元如何被編碼?
中文字元會先以 UTF-8 編碼轉換為位元組序列,再對每個位元組進行百分比編碼。例如「台」在 UTF-8 中為 3 個位元組,因此會被編碼為 3 組 %XX 序列。
Q:解碼失敗是什麼原因?
常見原因包含:百分比(%)後面跟著無效的十六進位字元、編碼字串格式不完整,或字串包含孤立的 % 符號。本工具會在解碼失敗時顯示錯誤提示。
Q:哪些字元不需要編碼?
根據 RFC 3986,以下字元被稱為「非保留字元」,不需要編碼:大小寫英文字母(A-Z, a-z)、數字(0-9)、以及 - _ . ~ 四個符號。
Q:這個工具是否安全?資料會被傳送到伺服器嗎?
完全安全。本工具所有運算均在您的瀏覽器中本地執行,輸入的任何文字都不會傳送至任何伺服器,請放心使用。
