0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
設定
編碼和解碼文字串以安全地用於 URL。組件 會編碼所有的預留字元,非常適合用於 query 的參數值。完整 URL 會保留 URL 的結構(方案、橫線、問號)。使用 + 表示 HTML 表單中的空格(application/x-www-form-urlencoded)。
操作
範圍
空間
0

運作方式

URL 編碼(百分號編碼)將無法在位址中直接出現的字元替換為帶有其位元組值的 %XX 序列。例如,空格變成 %20。

「元件」範圍還會轉義保留字元(= & / ? #):用於參數的值。「完整 URL」會保留位址結構:用於整個 URL。

在 HTML 表單中,空格被編碼為 +(application/x-www-form-urlencoded);在其他情況下,按照 RFC 3986 標準使用 %20。

範例

hola mundo & máshola%20mundo%20%26%20m%C3%A1s“&”會被轉義(%26),以免與參數分隔符混淆;“á”按 UTF-8 編碼(%C3%A1)。
a=1&b=2a%3D1%26b%3D2
https://sitio.com/á b?x=1 2URL completa: https://sitio.com/%C3%A1%20b?x=1%202在「完整 URL」模式下,://、/ 和 ? 會被保留;只有會破壞位址的字元才會被轉義。

使用情境

  • 手動建構 URL 時安全地組裝查詢參數。
  • 在透過 GET 請求傳送之前,對包含 &、=、空格或重音符號的值進行編碼。
  • 解碼 URL 以讀取每個參數攜帶的值。
  • 為表單提交準備 application/x-www-form-urlencoded 主體。

常見問題

「元件」和「完整 URL」有什麼區別?

「元件」(encodeURIComponent)還會轉義 =、&、/、?、# —— 用於單個值。「完整 URL」(encodeURI)會保留這些結構字元 —— 用於整個 URL。

空格何時用 +,何時用 %20?

+ 只適用於表單主體(application/x-www-form-urlencoded)。在 URL 的其餘部分,空格的標準是 %20。

為什麼“á”變成 %C3%A1 而不是單個 %XX?

因為它按 UTF-8 編碼:非 ASCII 字元占用多個位元組,每個位元組用各自的 %XX 序列表示。

對 URL 進行編碼會使其安全嗎?

不會。它只是在語法層面使其有效。這不是加密,也不會以任何方式保護內容。