Heim >Java >javaLernprogramm >Warum kodiert URLEncoder Leerzeichen als „' statt „'?

Warum kodiert URLEncoder Leerzeichen als „' statt „'?

DDD
DDDOriginal
2024-11-11 06:47:02864Durchsuche

Why Does URLEncoder Encode Spaces as ' ' Instead of ' '?

URLEncoder-Rätsel: Leerzeichenkodierung verstehen

Beim Versuch, eine Zeichenfolge mit URLEncoder zu kodieren, kann es zu einem unerwarteten Verhalten kommen, bei dem Leerzeichen statt in „ “-Symbole umgewandelt werden der erwartete Hexadezimalcode.

Ursache

Die URLEncoder-Klasse hält sich an die HTML-Spezifikationen für die Codierung von URLs in HTML-Formularen. Gemäß diesen Spezifikationen sollten Leerzeichen durch „ “-Symbole für Parameter im application/x-www-form-urlencoded MIME-Format ersetzt werden.

Lösung

Um die gewünschte Kodierung zu erreichen, bei der Leerzeichen konvertiert werden bis „ “ können Sie die folgenden Schritte ausführen:

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

Dadurch werden alle „ “-Symbole durch „ “ ersetzt, was zu einer korrekten Codierung gemäß Ihren Erwartungen 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!

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