如何對URL進行編碼和解碼

開發者

學習為什麼需要URL編碼、如何對特殊字符進行編碼以安全地在URL中使用,以及如何解碼百分號編碼的字符串。

步驟指南

1

了解URL編碼

URL只能包含有限的ASCII字符。特殊字符(空格、&、=、#等)必須進行百分號編碼:用%後跟兩位十六進制代碼替換。例如:空格→%20,&→%26。

2

使用工具編碼URL

在URL編碼工具中貼上您的字符串。點擊編碼,將所有特殊字符轉換為其百分號編碼的等效形式。結果可以安全地在URL中使用。

3

解碼URL編碼的字符串

貼上百分號編碼的字符串,點擊解碼即可看到原始文字。當您從日誌、API響應或網路表單收到亂碼URL時非常有用。

4

只編碼查詢值,不編碼完整URL

如果構建如 https://example.com/search?q=hello world 的URL,只需編碼值:q=hello%20world。對完整URL編碼也會編碼://、?和=,破壞URL結構。

5

JavaScript中的encodeURIComponent與encodeURI

encodeURIComponent編碼除未保留字符(A-Z、a-z、0-9、-、_、.、~)外的所有字符。用於查詢值。encodeURI跳過URL結構字符(:、/、?、#)。用於完整URL。

使用免費工具

URL 編解碼工具

常見問題

Q: %20和+有什麼區別?

A: 兩者都表示空格,但在不同的上下文中。%20是URL任何部分中空格的標準百分號編碼。+用於HTML表單查詢字符串(application/x-www-form-urlencoded)中的空格。大多數現代解碼器都能處理兩者。

Q: 為什麼URL顯示%3A或%2F?

A: %3A=冒號(:),%2F=斜線(/)。當具有URL結構意義的字符包含在查詢參數值中並需要轉義時,就會出現這些。

Q: 我也需要對路徑進行編碼嗎?

A: 路徑段應對空格和其他非ASCII字符進行編碼,但不對分隔段的斜線(/)進行編碼。對每個路徑段單獨使用encodeURIComponent。