首頁/部落格/URL 編碼完全指南:什麼時候需要 URL Encode?|線上 URL 編碼工具
指南

URL 編碼完全指南:什麼時候需要 URL Encode?|線上 URL 編碼工具

詳細解說 URL 編碼(Percent-encoding)的原理和應用場景。了解什麼是 URL 編碼、為什麼需要編碼、常見的編碼字元對照表,以及如何使用線上工具快速完成 URL 編碼和解碼。

奧特線上工具2026/2/1312 分鐘閱讀1 次瀏覽
URL 編碼完全指南:什麼時候需要 URL Encode?|線上 URL 編碼工具

URL 編碼完全指南:什麼時候需要 URL Encode?

什麼是 URL 編碼?

URL 編碼(URL Encoding),也稱為百分比編碼(Percent-encoding),是一種將特殊字元轉換為可以安全傳輸的格式的機制。根據 RFC 3986 標準,URL 中只能包含特定的 ASCII 字元,其他字元(包括中文、空格、特殊符號等)必須經過編碼才能安全地包含在 URL 中。

編碼的方式是將字元轉換為 % 加上兩位十六進位數字的形式。例如,空格被編碼為 %20,中文字「你」被編碼為 %E4%BD%A0


為什麼需要 URL 編碼?

URL 的結構

一個標準的 URL 由多個部分組成:

https://example.com:8080/path/to/page?key=value&name=test#section
|_____|  |___________|____|  |_________|  |________________|  |______|
協議     主機名      埠號    路徑         查詢參數           片段

URL 中的某些字元具有特殊含義(如 ?&=#/),如果數據中包含這些字元,就必須進行編碼,否則會破壞 URL 的結構。

常見需要編碼的場景

場景說明範例
中文參數URL 中包含中文字元?name=你好?name=%E4%BD%A0%E5%A5%BD
空格參數值包含空格?q=hello world?q=hello%20world
特殊符號參數值包含 &、= 等?code=a&b?code=a%26b
API 請求傳遞複雜的查詢參數JSON 字串作為參數
重導向 URLURL 作為另一個 URL 的參數?redirect=https%3A%2F%2F...

URL 編碼對照表

以下是常見字元的 URL 編碼對照:

字元編碼說明
空格%20+查詢字串中常用 +
!%21驚嘆號
#%23井號(片段標識符)
$%24美元符號
%%25百分號本身
&%26和號(參數分隔符)
+%2B加號
/%2F斜線(路徑分隔符)
:%3A冒號
=%3D等號(鍵值分隔符)
?%3F問號(查詢字串開始)
@%40At 符號

JavaScript 中的 URL 編碼函數

JavaScript 提供了多個 URL 編碼相關的函數,它們的行為略有不同:

encodeURI vs encodeURIComponent

函數用途不編碼的字元
encodeURI()編碼完整 URLA-Z a-z 0-9 ; , / ? : @ & = + $ - _ . ! ~ * ' ( ) #
encodeURIComponent()編碼 URL 組件(參數值)A-Z a-z 0-9 - _ . ! ~ * ' ( )

重要區別encodeURI() 不會編碼 URL 結構字元(如 /?&),適合編碼完整 URL;encodeURIComponent() 會編碼這些字元,適合編碼 URL 的參數值。

使用範例

javascript
// 編碼完整 URL
encodeURI("https://example.com/搜尋?q=你好 世界")
// → "https://example.com/%E6%90%9C%E5%B0%8B?q=%E4%BD%A0%E5%A5%BD%20%E4%B8%96%E7%95%8C"

// 編碼參數值
const value = "hello&world=test";
const url = `https://example.com?q=${encodeURIComponent(value)}`;
// → "https://example.com?q=hello%26world%3Dtest"

您可以使用我們的URL 編碼/解碼器 [blocked]快速測試這些編碼結果。


Base64 編碼 vs URL 編碼

特性URL 編碼Base64 編碼
用途URL 中的特殊字元二進位數據轉文字
格式%XXA-Za-z0-9+/=
大小增長每個特殊字元增長 3 倍固定增長約 33%
可讀性部分可讀完全不可讀

我們的URL 編碼工具 [blocked]同時支援 URL 編碼和 Base64 編碼,方便您根據需求選擇合適的編碼方式。


常見問題(FAQ)

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

URL 編碼使用 %XX 格式,用於 URL 中的特殊字元。HTML 實體編碼使用 &name;&#number; 格式,用於 HTML 文件中的特殊字元。兩者的用途和格式完全不同。

為什麼有時候看到 + 代替 %20

application/x-www-form-urlencoded 格式(HTML 表單提交)中,空格被編碼為 +。在標準的 URL 編碼(RFC 3986)中,空格被編碼為 %20。兩種方式在不同的上下文中都是正確的。

中文字元需要幾個 %XX

中文字元使用 UTF-8 編碼時,通常需要 3 個 %XX。例如,「你」的 UTF-8 編碼是 E4 BD A0,URL 編碼後為 %E4%BD%A0

什麼時候不需要 URL 編碼?

如果 URL 中只包含 ASCII 字母、數字和少數安全字元(-_.~),則不需要編碼。_


相關工具推薦

  • URL 編碼/解碼器 [blocked]:快速進行 URL 編碼和解碼
  • JSON 格式化工具 [blocked]:格式化 API 回應中的 JSON 數據
  • Hash 計算器 [blocked]:計算字串的 Hash 值
  • 正則表達式測試器 [blocked]:驗證 URL 格式的正則表達式

立即使用我們的免費 URL 編碼工具 [blocked],快速完成 URL 編碼和解碼!

立即試用相關工具

馬上體驗文章中提到的功能