> 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)中,出於歷史原因,空格也可以被編碼為 +。兩種寫法都有效,只是使用情境不同。