← 全部工具

URL 編碼/解碼(百分比編碼)

一句話說明: URL 編碼又叫百分比編碼,把網址裡不能直接出現的字元寫成 % 加兩位十六進位數字,讓中文和特殊符號能安全放進網址。

隱私:全部在你的瀏覽器裡計算,不會送到伺服器。

查核日期 2026-10-21 · 回報錯誤

互動工具需要 JavaScript。下方的公式、範例與說明不需要 JavaScript 也能閱讀。

百分比編碼是什麼

網址只能直接使用一小組字元。RFC 3986 第 2.3 節把 A–Z、a–z、0–9 和 -、.、_、~ 定為「不保留字元」,這些可以原樣出現。

其他字元要先轉成 UTF-8 位元組,每個位元組寫成 %XX。例如「台」的 UTF-8 是三個位元組 E5 8F B0,編碼後是 %E5%8F%B0。

另有一組「保留字元」,例如 ?、&、=、/、#。它們在網址裡有結構上的意義:? 開始查詢字串,& 分隔參數,= 分開名稱與值。如果這些字元是「資料」而不是「結構」,就必須編碼。例如搜尋字詞裡的 & 要寫成 %26。

URL 編碼和 Base64 一樣只是改寫方式,不是加密。任何人都能還原。

使用情境

  1. 組 API 或搜尋網址。 查詢參數的值有中文、空白、& 或 = 時,要先編碼,否則伺服器會切錯參數。
  2. 看懂分享連結或後台記錄裡的 `%E5...`。 從瀏覽器複製網址、看伺服器日誌、看 UTM 參數時,中文常變成一長串百分比編碼。解碼後才看得懂。
  3. 除錯「網址參數收到的值不對」。 例如收到的值被截斷、+ 變空白、% 出現兩次。把原始網址貼進來解碼,就能看出是哪一段沒編碼或編碼了兩次。

範例

輸入輸出
台北 咖啡&甜點(整段當成一個參數值)%E5%8F%B0%E5%8C%97%20%E5%92%96%E5%95%A1%26%E7%94%9C%E9%BB%9E
同上,用表單格式(空白寫成 +)%E5%8F%B0%E5%8C%97+%E5%92%96%E5%95%A1%26%E7%94%9C%E9%BB%9E
解碼 %E5%8F%B0%E5%8C%97台北

組成完整網址:搜尋「咖啡&甜點=好吃」時,正確寫法是

https://example.com/search?q=%E5%92%96%E5%95%A1%26%E7%94%9C%E9%BB%9E%3D%E5%A5%BD%E5%90%83。

& 和 = 都被編碼了,所以伺服器只會看到一個參數 q。

常見錯誤

  1. 整條網址一起編碼。 把 https:// 的 : 和 / 也編碼,網址就壞了。只編碼「放進去的值」,不要編碼網址的骨架。JavaScript 裡,參數值用 encodeURIComponent()。
  2. 重複編碼。 已經編碼過的 %20 再編碼一次,會變成 %2520(% 本身被寫成 %25)。看到 %25 連續出現,多半是編碼了兩次。
  3. 把 `+` 當成空白,或反過來。 表單格式(application/x-www-form-urlencoded)把空白寫成 +,解碼時 + 還原成空白。一般的百分比編碼則把空白寫成 %20,+ 就是加號。如果參數值本來就有 +(例如電話 +886),要寫成 %2B。
  4. 用 Big5 等舊編碼。 現代網址標準用 UTF-8。用 Big5 編碼的中文,在 UTF-8 系統解碼會變亂碼。本工具一律用 UTF-8。
  5. 以為 URL 編碼能隱藏內容。 %E5%AF%86%E7%A2%BC 一解就是「密碼」。不要把密碼或金鑰放進網址,網址會留在瀏覽紀錄與伺服器日誌裡。

常見問題(FAQ)

URL 編碼和百分比編碼是同一件事嗎?
是。正式名稱是百分比編碼(percent-encoding),定義在 RFC 3986 第 2.1 節。因為用在網址上,一般也叫 URL 編碼。
空白應該編成 %20 還是 +?
看用途。放在網址路徑或一般參數,用 %20 最保險。HTML 表單送出的查詢字串用 +。本工具兩種都提供,預設是 %20。
為什麼一個中文字會變成 9 個字元?
常用中文字在 UTF-8 佔 3 個位元組。每個位元組寫成 %XX,3 個位元組就是 9 個字元,例如「台」是 %E5%8F%B0。
encodeURI 和 encodeURIComponent 差在哪?
encodeURI() 用在完整網址,不會編碼 /、?、&、= 這些結構字元。encodeURIComponent() 用在單一參數值,會把這些字元都編碼。組查詢參數時要用後者。本工具的編碼模式等同 encodeURIComponent()。
我貼上的網址會被送出去嗎?
不會。編碼與解碼都在你的瀏覽器裡計算,資料不會送到伺服器,本工具也不會開啟你貼上的網址。

來源(查核日期 2026-10-21)