URL 編碼/解碼

URL 將特殊字元編碼為百分比轉義符(%20 等)或將其解碼回來。自動檢測方向。對於查詢參數、重定向和讀取混亂的 URL 很有用。

範例: hello world? → hello%20world%3F

URL 編碼(百分比編碼)將 URL 中具有特殊意義的字元替換為 % 接下來是它們的十六進位位元組值。 ? 變成 %3F,空間變成 %20,等等。當 URL 查詢參數或路徑段中包含任意文本時,這是必需的。

此工具自動檢測:如果輸入包含 %xx 序列,它解碼;否則它會編碼。

保留字元與非保留字元以及 %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 進行編碼或解碼

  1. 將要編碼或解碼的文字貼上或鍵入到輸入區域。
  2. 選擇方向:編碼、解碼或保留自動偵測(預設)。
  3. 點選“轉換”按鈕執行轉換。
  4. 從輸出區複製輸出結果。

空格為 + 與 %20,以及雙重編碼

無效的 % 序列
解碼期間像「%GG」這樣的輸入保持原樣,因為「GG」不是有效的十六進位對。
混合內容
如果輸入同時包含文字「%」和編碼序列(例如「%20%」),自動偵測可能會誤解;使用明確模式以獲得可靠性。
Unicode 代理程式對
表情符號(例如😀)等字符被編碼為其完整代碼點的 UTF-8 字節,而不是代理對,符合現代 URL 標準。

在不破壞路徑的情況下對查詢字串進行編碼

  • 若要快速偵錯 URL 查詢字串,請貼上整個 URL,然後一鍵自動偵測解碼。
  • 始終對完整的查詢參數值(而不僅僅是鍵)進行編碼,以避免連結損壞。
  • 解碼時,如果文字包含非 ASCII 字符,請驗證輸出編碼是否為 UTF-8。
  • 如果您的輸入包含不屬於編碼一部分的合法「%」(例如文字中的百分比),請明確使用編碼模式。

編碼 URI 與 編碼 URI 組件

雖然許多工具都提供 URL 編碼,但這個工具強調簡單性和自動檢測。

這個工具線上 URL 編碼器/解碼器 (urlencoder.org)Python urllib.parse.quote()
偵測根據 % 模式自動偵測編碼與解碼沒有檢測到;手動選擇沒有偵測到;獨立的功能
離線使用否(基於網路)否(基於網路)是(本地腳本)
批量處理僅單輸入僅單輸入可以用循環處理列表

RFC 3986 中的百分比編碼

百分比編碼起源於萬維網的發展。 RFC 1738 (1994),由 Tim Berners-Lee 撰寫,首次標準化了 %XX 轉義以在 URL 中包含任意八位元位元組。目前規範 RFC 3986 (2005) 細化了規則並闡明瞭 UTF-8 對於非 ASCII 字元的使用。自動解碼檢測是一項便利功能,不屬於任何標準,但在開發人員工具中廣泛採用。

當 URL 需要百分比編碼時

建立搜尋查詢 URL

在粘貼到 URL 之前對用户輸入進行編碼:“hello world”→“hello%20world”。對於任何帶有空格或標點符號的查詢字符串都是必需的。

從日誌中讀取混亂的 URL

伺服器日誌中的 URL 採用百分比編碼。解碼使它們可讀 - 您可以看到用户實際搜尋的內容。

偵錯重新導向 URL

OAuth 和 SAML 流將重定向 URL 作為編碼的查詢參數傳遞。解碼顯示實際目的地。

分享帶有特殊字元的 URL

如果您想要共享帶有括號或非 ASCII 字元的 URL,並且需要它在複製貼上中保留下來,請先對其進行編碼。

建立 Mailto/SMS 鏈接

mailto: 和 sms: URL 需要編碼的主題行和內文。在組裝之前對訊息文字進行編碼。

URL編碼問題

encodeURI 與encodeURIComponent — 這使用哪個?

encodeURIComponent — 對所有特殊的內容進行編碼,包括 ?, =, &, /。對單一值進行編碼以放入 URL 時使用它。對整個 URL 進行編碼時,請使用更廣泛的encodeURI。

為什麼空格有時會編碼為 + 而不是 %20?

在查詢字串中(後面的部分 ?),傳統的形式編碼標準使用 + 為了空間。兩者在查詢字串中都是有效的; %20 在其他地方都是通用的。

它編碼 UTF-8 嗎?

是 - 非 ASCII 字元被編碼為其 UTF-8 位元組(例如 é → %C3%A9)。這是現代標準。

它會對已經編碼的字符串進行雙重編碼嗎?

如果您的輸入包含 %xx 模式,該工具假設它已經被編碼和解碼。若要強制重新編碼,請貼上更乾淨的輸入或手動執行兩次。

將我們的工具嵌入您的網站

對任何網站免費。沒有註冊。 iframe 從我們的伺服器載入並自動保持最新狀態。

📋 嵌入字數計數器

複製此片段(自動調整大小,複製按鈕有效):

即時預覽:

📋 嵌入此 URL 編碼/解碼

複製此片段(自動調整大小,複製按鈕有效):

即時預覽:

想要更多選擇嗎? 所有嵌入式工具 →