Heim  >  Artikel  >  Java  >  Warum ersetzt URLEncoder Leerzeichen in HTML-Formular-URLs durch „ “ und wie kann ich stattdessen „ “ erhalten?

Warum ersetzt URLEncoder Leerzeichen in HTML-Formular-URLs durch „ “ und wie kann ich stattdessen „ “ erhalten?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-11 10:45:03248Durchsuche

Why does URLEncoder replace spaces with ' ' in HTML form URLs, and how can I get

URLEncoders Behandlung von Leerzeichen in HTML-Formular-URLs

In URLEncoding wird eine Zeichenfolge in das Format „application/x-www-form-“ konvertiert. Im MIME-Format „urlencoded“ erwartet der URLEncoder, Leerzeichen gemäß den HTML-Spezifikationen durch „“-Zeichen zu ersetzen. Dieses Verhalten folgt den Codierungsregeln für HTML-Formulare, bei denen Steuerelementnamen und -werte maskiert und Leerzeichen durch „ ' ersetzt werden müssen.

Das Problem tritt auf, wenn die erwartete Ausgabe „ “ für Leerzeichen anstelle des Standardverhaltens von ist " ". Um diese Diskrepanz zu beheben, muss nach der anfänglichen URLEncoding das Zeichen „ “ manuell durch „ ersetzt werden. Zum Beispiel:

System.out.println(java.net.URLEncoder.encode("Hello World", "UTF-8").replace("+", "%20"));

Dadurch wird das erwartete „Hello World“ mit Leerzeichen ausgegeben, die korrekt als „ “ codiert sind.

Das obige ist der detaillierte Inhalt vonWarum ersetzt URLEncoder Leerzeichen in HTML-Formular-URLs durch „ “ und wie kann ich stattdessen „ “ erhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn