如何編碼與解碼 URL — 完全指南
快速解答
URL 編碼將不安全字元轉換為 %XX 序列,其中 XX 是位元組的十六進位值。空格變成%20(或表單資料中的+),漢字變成多位元組%XX序列。使用我們免費的 URL 編碼器和 URL 解碼器 - 所有處理都在您的瀏覽器本地進行。
介紹
URL 編碼,也稱為百分比編碼,是一種對 URL 中的保留字元和不安全字元進行編碼的機制,以便 URL 可以在網路上安全傳輸。 URLs 只能包含一組有限的 ASCII 字元;任何其他字元(空格、非 ASCII 字母、符號)必須以百分比編碼為以 % 開頭的序列,後面跟著表示位元組值的兩個十六進位數字。
步步
-
確定需要編碼的內容
不在非保留集中的字元(A-Z、a-z、0-9、-、.、_、~)必須進行百分比編碼。這包括空格、查詢分隔符號(如 = 和 &)、斜線以及所有非 ASCII 字元(如中文、阿拉伯語或表情符號)。
-
對 URL 或查詢字串進行編碼
將文字貼到 URL 編碼器工具中。它使用encodeURIComponent() 對每個保留字元進行編碼。結果立即出現在輸出欄位中。
-
複製編碼結果
按一下複製按鈕複製百分比編碼的字串。現在您可以安全地將其嵌入到 URL 查詢參數、API 請求或表單提交中。
-
解碼編碼的 URL
將編碼的 URL 或查詢字串貼到 URL 解碼器工具中。它使用decodeURIComponent()來恢復原始字元。驗證解碼的輸出是否符合您的期望。
-
驗證邊緣情況
檢查空格是否正確解碼(%20 與 +)、多字節 UTF-8 序列是否解碼為正確的字符,以及已編碼的字串是否未雙重編碼。
範例
使用空格對文字進行編碼
輸入: Hello World
輸出: Hello%20World
對路徑分隔符號進行編碼
輸入: a/b
輸出: a%2Fb
對漢字進行編碼(UTF-8)
輸入: 你好
輸出: %E4%BD%A0%E5%A5%BD
解碼編碼的查詢參數
輸入: key%3Dvalue%26foo%3Dbar
輸出: key=value&foo=bar
常見問題
- 雙重編碼:對已編碼的字串進行編碼,將 %20 轉換為 %2520。在重新編碼之前始終檢查輸入是否已編碼。
- 混淆encodeURI 和encodeURIComponent:encodeURI 保留保留字符,例如/、? 和& 完整的URLs,而encodeURIComponent 對查詢參數值的所有內容進行編碼。
- 空格處理:%20 是百分比編碼形式; + 僅在 application/x-www-form-urlencoded 正文資料中有效,在 URL 路徑或 RFC 3986 的查詢字串中無效。
- 非 UTF-8 遺留編碼:現代瀏覽器編碼為 UTF-8,但遺留系統可能使用 GBK 或 Latin-1,在另一端解碼時會導致 mojibake。
提示
- 對單一查詢參數值使用encodeURIComponent(),對已經格式良好的整個URLs 使用encodeURI()。
- 建立查詢字串時,對值進行編碼,但不要對 = 或 & 分隔符號進行編碼 - 分別對每個值進行編碼,然後用 & 連接。
- 使用我們的 URL 編碼器和解碼器工具來調試由於查詢字串格式錯誤而傳回 400 錯誤的 API 呼叫。
- 始終使用相同的字元編碼 (UTF-8) 在伺服器端進行解碼,以避免 mojibake。