📚 什麼是 URL 編碼?給門外漢的完整說明
你可能看過這種網址:https://example.com/search?q=%E4%B8%AD%E6%96%87。這一串 %E4%B8%AD%E6%96%87 是什麼?這就是 URL 編碼。
一、URL 編碼是什麼?一句話講完
URL 編碼 = 把「不能放在網址的字元」轉成「% + 16 進位」的格式。
例如「中」的 UTF-8 是 E4 B8 AD,URL 編碼就是 %E4%B8%AD。
二、為什麼需要 URL 編碼?
因為「網址只能包含特定字元」,不能包含空白、中文、特殊符號。
- 空白:網址不能有空白(會變成
%20 或 +)
- 中文:網址不能有中文(會變成
%E4%B8%AD)
- 特殊符號:
&、=、?、/ 在網址裡有特殊意義
URL 編碼把「不能放的字元」轉成「% + 16 進位」,就能安全地放進網址。
三、URL 編碼的規則
| 字元 | UTF-8 | URL 編碼 |
| 空白 | 20 | %20 |
| 中 | E4 B8 AD | %E4%B8%AD |
| 文 | E6 96 87 | %E6%96%87 |
| & | 26 | %26 |
| = | 3D | %3D |
規則:每個 byte 轉成「% + 兩位 16 進位」。中文是 3 bytes,所以變 3 個 %XX。
四、URL 編碼 vs URL 解碼
- URL 編碼(encode):把「中文」轉成「%E4%B8%AD」
- URL 解碼(decode):把「%E4%B8%AD」轉回「中」
瀏覽器會自動做這兩件事:你在網址列打「中文」,瀏覽器自動編碼;你點連結,瀏覽器自動解碼。
五、URL 編碼的實際用途
- 搜尋引擎:Google 搜尋「中文」時,網址會變
?q=%E4%B8%AD%E6%96%87
- API:API 的參數要用 URL 編碼(例如
?name=%E5%B0%8F%E6%98%8E)
- 表單:HTML 表單送出時,瀏覽器自動 URL 編碼
- 檔案下載:中文檔名要用 URL 編碼(例如
%E4%B8%AD%E6%96%87.pdf)
六、URL 編碼的 3 個常見錯誤
錯誤 1:重複編碼
已經編碼過的網址,又編碼一次,會變 %25E4%25B8%25AD(% 變 %25)。
錯誤 2:用錯函數
JavaScript 有 encodeURI() 和 encodeURIComponent(),前者不編碼 /,後者編碼 /。要用對。
錯誤 3:忘記解碼
收到 URL 編碼的參數,忘記解碼,就會看到 %E4%B8%AD 而不是「中」。
七、常見誤解
- ❌ 誤解:URL 編碼是加密。
✅ 事實:URL 編碼是「編碼」,不是加密。
- ❌ 誤解:URL 編碼會讓網址變長。
✅ 事實:對,URL 編碼會讓網址變長(中文變 3 倍)。
- ❌ 誤解:所有字元都要編碼。
✅ 事實:只有「不能放進 URL 的字元」才要編碼。
- ❌ 誤解:URL 編碼只能用 UTF-8。
✅ 事實:URL 編碼可以用任何編碼,但現在都用 UTF-8。
- ❌ 誤解:編碼一次就夠了。
✅ 事實:對,編碼一次就夠,重複編碼會出錯。
八、這個工具能幫你做什麼?
- 編碼:把中文或特殊符號轉成 URL 編碼
- 解碼:把 URL 編碼轉回中文
- 支援 UTF-8:中文、日文、韓文都能正確編碼解碼
🦞 龍蝦總工程師的話:
「URL 編碼是網際網路的翻譯官。它讓中文能走進只認英文的網址世界。懂它,你就不會看到 %E4%B8%AD 就頭暈。」
本文由 🦞 龍蝦總工程師撰寫 · 2026-11-03 · 雅寶社區 AHPAL.COM