首頁 >Java >java教程 >為什麼`URLEncoder`將空格編碼為'”而不是'”?

為什麼`URLEncoder`將空格編碼為'”而不是'”?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-11 16:35:031090瀏覽

Why Does `URLEncoder` Encode Spaces as

URLEncoder 和HTML 表單URL 編碼之間的差異

在嘗試使用java.net.URLEncoder 對包含空格字元的字串進行字串編碼時,您可能會注意到意想不到的結果。輸出不遵循預期的“Hello World”格式,而是產生“Hello World”。這源自於 URLEncoder 的行為和 HTML 表單 URL 編碼之間的細微差別。

URLEncoder 根據 HTML 規格進行操作,以對 HTML 表單中的 URL 進行編碼。根據 HTML 規範,控制項名稱和值必須轉義空格字符,不能使用“,”,而是使用“”符號。

但是,您的要求可能是將空格字元專門編碼為「」。為此,可以對編碼字串執行簡單的替換操作:

String encodedString = java.net.URLEncoder.encode("Hello World", "UTF-8");
String correctedString = encodedString.replace("+", "%20");

此更正將“ ”符號替換為“,”,從而得到所需的“Hello World”格式。

以上是為什麼`URLEncoder`將空格編碼為'”而不是'”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn