如何對字串進行 URL 編碼
百分比編碼會把 URL 中不安全的字元替換為 %,後接該字元每個 UTF-8 位元組的十六進位值。使用 encodeURIComponent() 的「組件」模式適合單一查詢參數值或路徑片段。
計算範例
| 字元 | UTF-8 位元組 | 組件 |
|---|---|---|
| ␠ | %20 | %20 |
| & | %26 | %26 |
| = | %3D | %3D |
| / | %2F | %2F |
| ? | %3F | %3F |
| é | %C3 %A9 | %C3%A9 |
| 😀 | %F0 %9F %98 %80 | %F0%9F%98%80 |
「組件」模式把整句話編碼成一個安全的值。
- 輸入
- rock & roll/size=XL? café 😀
- 結果 ·
encodeURIComponent() - rock%20%26%20roll%2Fsize%3DXL%3F%20caf%C3%A9%20%F0%9F%98%80
「完整 URL」模式會保留 & = / ? 不變,因此只應用於完整的 URL。
- 輸入
- rock & roll/size=XL? café 😀
- 結果 ·
encodeURI() - rock%20&%20roll/size=XL?%20caf%C3%A9%20%F0%9F%98%80
工具的處理方式
- 字母 A–Z 與 a–z、數字 0–9 以及 - _ . ! ~ * ' ( ) 一律保持不變。
- 其他字元都會先轉成 UTF-8 位元組,每個位元組寫成 % 加兩位大寫十六進位數字:é 佔兩個位元組,多數表情符號佔四個位元組。
- 「組件」模式也會編碼保留字元 : / ? # [ ] @ & = + $ , ;,因此它們無法改變 URL 的結構。