Unterschiede zwischen URLEncoder und HTML-Formular-URL-Kodierung
Beim Versuch, eine Zeichenfolge mit einem Leerzeichen mit java.net.URLEncoder zu kodieren, müssen Sie Möglicherweise stellen Sie ein unerwartetes Ergebnis fest. Die Ausgabe folgt nicht dem erwarteten „Hello World“-Format, sondern ergibt stattdessen „Hello World“. Dies ergibt sich aus der Nuance zwischen dem Verhalten von URLEncoder und der URL-Kodierung von HTML-Formularen.
Der URLEncoder arbeitet gemäß der HTML-Spezifikation für die Kodierung von URLs in HTML-Formularen. Gemäß der HTML-Spezifikation müssen Steuerelementnamen und -werte Leerzeichen maskieren, nicht mit „“, sondern mit dem Symbol „ “.
Ihre Anforderung besteht jedoch möglicherweise darin, ein Leerzeichen speziell als „“ zu kodieren. Um dies zu erreichen, kann eine einfache Ersetzungsoperation an der codierten Zeichenfolge durchgeführt werden:
String encodedString = java.net.URLEncoder.encode("Hello World", "UTF-8"); String correctedString = encodedString.replace("+", "%20");
Diese Korrektur ersetzt das Symbol „ “ durch „ , was zum gewünschten „Hello World“-Format führt.
Das obige ist der detaillierte Inhalt vonWarum kodiert „URLEncoder' Leerzeichen als „ „ statt „ „?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!