類別:教學
什麼是 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-Z、a-z、0-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 Encoder / Decoder
- 選擇編碼或解碼模式
- 輸入文字或 URL
- 轉換結果即時顯示
- 複製結果使用
常見問題
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 編碼中使用的字元編碼方式