> percent | url | rfc3986 <

// 百分號編碼 —— 將字元轉換為適用於 URL / URI 的 %XX 格式

[RFC3986]

符合標準

遵循 RFC 3986 規範實作 URI 百分號編碼。

[UNICODE]

完整 Unicode 支援

正確處理 UTF‑8 編碼的 Unicode 字元與表情符號。

[FLEXIBLE]

彈性編碼選項

可在標準編碼與「編碼所有字元」模式之間自由切換。

>> 技術說明

百分號編碼的工作原理:

百分號編碼會將不安全的 ASCII 字元替換為百分號 (%) 與兩個十六進位數字,這兩個數字代表該字元的位元組值。UTF‑8 字元會被編碼為多個 ‎%XX‎ 序列。

範例:

"Hello World!" → Hello%20World%21

何時需要使用百分號編碼:

  • >URL / URI 編碼
  • >表單資料提交
  • >查詢字串參數
  • >URL 路徑組件
  • >HTTP 標頭與 Cookie

>> 常見問題

什麼是百分號編碼?

百分號編碼(也稱為 URL 編碼)是一種在 URI 中編碼資訊的機制,透過將不安全的 ASCII 字元替換為「%」加上兩個十六進位數字來實現。

什麼時候應該使用百分號編碼?

當你在 URL、查詢參數、表單資料或其他情境中包含特殊字元,而這些字元具有特殊意義並需要轉義時,就應該使用百分號編碼。

encodeURI 和 encodeURIComponent 有何差異?

encodeURI 用於編碼整個 URI,會保留 :/?#[]@ 等字元;encodeURIComponent 則會編碼所有字元,除了未保留字元 (A‑Z, a‑z, 0‑9, -, _, ., ~)。

為什麼空格會變成 %20 或 +?

在 URL 中,空格通常會被編碼為 %20。在表單資料(application/x-www-form-urlencoded)中,出於歷史原因,空格也可以被編碼為 +。兩種寫法都有效,只是使用情境不同。

其他語言