URL 編碼/解碼
URL 將特殊字元編碼為百分比轉義符(%20 等)或將其解碼回來。自動檢測方向。對於查詢參數、重定向和讀取混亂的 URL 很有用。
hello world? → hello%20world%3F
URL 將特殊字元編碼為百分比轉義符(%20 等)或將其解碼回來。自動檢測方向。對於查詢參數、重定向和讀取混亂的 URL 很有用。
hello world? → hello%20world%3F
URL 編碼(百分比編碼)將 URL 中具有特殊意義的字元替換為 % 接下來是它們的十六進位位元組值。 ? 變成 %3F,空間變成 %20,等等。當 URL 查詢參數或路徑段中包含任意文本時,這是必需的。
此工具自動檢測:如果輸入包含 %xx 序列,它解碼;否則它會編碼。
該工具實現了百分比編碼,如 RFC 3986。每個字元首先使用 UTF-8 編碼為位元組序列。不在非保留集中的字元 (A-Z a-z 0-9 - . _ ~)被替換為 % 後面跟著兩個代表位元組值的大寫十六進制數字。例如, ? (U+003F) 變為 %3F,空間 (U+0020) 變成 %20。非 ASCII 字符,例如 é,首先轉換為其多位元組 UTF-8 表示形式: é (U+00E9) 變為 %C3%A9.
此工具自動偵測操作方向:如果輸入包含 % 後面跟著兩個十六進制數字(不區分大小寫),假定解碼;否則,它假設編碼。在解碼過程中,每個都有效 %XX 序列被轉換回對應的位元組,並且位元組序列被解釋為 UTF-8。無效序列(例如, %GG) 不變地通過。此強大的處理可確保正確處理乾淨的 URL 和原始表單資料。
雖然許多工具都提供 URL 編碼,但這個工具強調簡單性和自動檢測。
| 這個工具 | 線上 URL 編碼器/解碼器 (urlencoder.org) | Python urllib.parse.quote() | |
|---|---|---|---|
| 偵測 | 根據 % 模式自動偵測編碼與解碼 | 沒有檢測到;手動選擇 | 沒有偵測到;獨立的功能 |
| 離線使用 | 否(基於網路) | 否(基於網路) | 是(本地腳本) |
| 批量處理 | 僅單輸入 | 僅單輸入 | 可以用循環處理列表 |
百分比編碼起源於萬維網的發展。 RFC 1738 (1994),由 Tim Berners-Lee 撰寫,首次標準化了 %XX 轉義以在 URL 中包含任意八位元位元組。目前規範 RFC 3986 (2005) 細化了規則並闡明瞭 UTF-8 對於非 ASCII 字元的使用。自動解碼檢測是一項便利功能,不屬於任何標準,但在開發人員工具中廣泛採用。
在粘貼到 URL 之前對用户輸入進行編碼:“hello world”→“hello%20world”。對於任何帶有空格或標點符號的查詢字符串都是必需的。
伺服器日誌中的 URL 採用百分比編碼。解碼使它們可讀 - 您可以看到用户實際搜尋的內容。
OAuth 和 SAML 流將重定向 URL 作為編碼的查詢參數傳遞。解碼顯示實際目的地。
如果您想要共享帶有括號或非 ASCII 字元的 URL,並且需要它在複製貼上中保留下來,請先對其進行編碼。
mailto: 和 sms: URL 需要編碼的主題行和內文。在組裝之前對訊息文字進行編碼。
encodeURIComponent — 對所有特殊的內容進行編碼,包括 ?, =, &, /。對單一值進行編碼以放入 URL 時使用它。對整個 URL 進行編碼時,請使用更廣泛的encodeURI。
在查詢字串中(後面的部分 ?),傳統的形式編碼標準使用 + 為了空間。兩者在查詢字串中都是有效的; %20 在其他地方都是通用的。
是 - 非 ASCII 字元被編碼為其 UTF-8 位元組(例如 é → %C3%A9)。這是現代標準。
如果您的輸入包含 %xx 模式,該工具假設它已經被編碼和解碼。若要強制重新編碼,請貼上更乾淨的輸入或手動執行兩次。