URL 編碼完全指南:什麼時候需要 URL Encode?|開發者必讀

深入了解 URL 編碼的原理和應用場景。包含 encodeURI 和 encodeURIComponent 的區別、常見編碼問題和解決方案。

本文介紹的工具:URL 編碼/解碼器

什麼是 URL 編碼?

URL 編碼(URL Encoding),也稱為百分號編碼(Percent-encoding),是一種將特殊字元轉換為 URL 安全格式的機制。例如,空格會被編碼為 %20,中文字「你好」會被編碼為 %E4%BD%A0%E5%A5%BD。


為什麼需要 URL 編碼?

類型 字元 說明
字母 A-Z, a-z 可直接使用
數字 0-9 可直接使用
保留字元 :/?#[]@!
amp;'()*+,;=
具有特殊含義
非保留字元 -_.~ 可直接使用

其他所有字元都必須進行百分號編碼。


encodeURI vs encodeURIComponent

函數 用途 不編碼的字元
encodeURI 編碼完整 URL :/?#[]@!
amp;'()*+,;=-_.~
encodeURIComponent 編碼 URL 組件 -_.~!*'()

重要原則: 編碼查詢參數的值時,一定要使用 encodeURIComponent。


常見編碼問題

1. 中文 URL 亂碼

URL 包含中文但未正確編碼時會出現亂碼。

2. 雙重編碼

對已編碼的 URL 再次編碼,% 會被編碼為 %25。

3. 加號(+)vs 空格(%20)

查詢字串中 + 和 %20 都表示空格,但路徑中只有 %20 表示空格。


實用工具

使用我們的 URL 編碼/解碼器 可以快速進行 URL 編碼和解碼、組件編碼和批量處理(登入後解鎖)。


常見問題(FAQ)

URL 編碼和 HTML 實體編碼有什麼區別?

URL 編碼用於 URL 中的特殊字元(如 %20),HTML 實體編碼用於 HTML 文件中的特殊字元(如 &)。

Base64 編碼可以替代 URL 編碼嗎?

不建議。Base64 結果可能包含 +、/ 和 = 等 URL 保留字元。


相關工具推薦