收藏

開發者工具

InoTools Blog
類別:教學

什麼是 URL 編碼?百分比編碼的原理與轉換方法

在 URL 中包含中文或特殊字元時出現亂碼?了解 URL 編碼的原理,安全地處理 URL 吧。

什麼是 URL 編碼?

URL 編碼(百分比編碼)是將 URL 中不允許使用的字元轉換為 %XX(十六進位) 格式的處理。基於 RFC 3986 定義的 URI 規範。

例如:

  • 空格 → %20
  • &%26
  • 台北%E5%8F%B0%E5%8C%97
  • 你好%E4%BD%A0%E5%A5%BD

URL 中安全使用的字元僅限於英數字(A-Za-z0-9)和部分符號(-_.~)。其他字元都需要編碼。

為什麼需要 URL 編碼?

URL 對可使用的字元有嚴格的規則。沒有編碼會導致以下問題:

  • 亂碼 — 非 ASCII 字元無法正確傳送到伺服器
  • 參數破壞&= 被誤解為查詢參數的分隔符
  • 安全風險 — 可能導致意外的參數注入或 XSS 攻擊

URL 編碼的使用場景

  • 搜尋查詢 — 在搜尋 URL 中包含中文等非 ASCII 字元
  • 表單提交 — 將 HTML 表單資料傳送到伺服器
  • API 呼叫 — 建構 RESTful API 的查詢參數
  • 重新導向 — 在 URL 參數中安全地包含目標 URL
  • Cookie — 跳脫 Cookie 值中的特殊字元
  • 電子郵件連結mailto: 連結中的主旨和內文

URL 編碼的優勢

  • 國際化支援 — 可以在 URL 中安全地包含任何語言的字元
  • 資料完整性 — 將保留字元(?&=#)作為資料處理
  • 標準規範 — 基於 RFC 3986,在所有瀏覽器和伺服器中產生一致的結果
  • 安全性 — 降低參數注入和 XSS 攻擊的風險

如何進行 URL 轉換

URL 編碼和解碼可以使用 本站的「URL Encoder / Decoder」輕鬆完成。所有處理都在瀏覽器內完成,輸入資料不會被傳送到任何外部伺服器。無需註冊、完全免費。

立即使用 URL 編碼器進行轉換

工具使用方法

  1. 開啟 URL Encoder / Decoder
  2. 選擇編碼或解碼模式
  3. 輸入文字或 URL
  4. 轉換結果即時顯示
  5. 複製結果使用

常見問題

Q. encodeURI 和 encodeURIComponent 有什麼區別?

A. encodeURI() 編碼整個 URL,保留 ://?& 等結構字元。encodeURIComponent() 用於編碼參數值,會編碼所有這些字元。參數值請使用 encodeURIComponent()

Q. URL 編碼會影響 SEO 嗎?

A. Google 能正確處理編碼後的 URL,不會對 SEO 產生負面影響。但在社群媒體分享時,URL 可能會變長,可考慮使用短網址服務。

Q. +%20 有什麼區別?

A. 兩者都代表空格,但 + 用於 application/x-www-form-urlencoded(表單提交),%20 是 URI 標準規範(RFC 3986)中使用的格式。API 的查詢參數建議使用 %20

相關術語

  • 百分比編碼 — URL 編碼的正式名稱。以 %XX 格式表示字元
  • RFC 3986 — 定義 URI 語法的國際標準規範
  • 查詢參數 — URL 中 ? 之後的 key=value 格式資料
  • URI(統一資源識別碼) — 唯一識別資源的字串。URL 是 URI 的一種
  • UTF-8 — URL 編碼中使用的字元編碼方式