Heim  >  Artikel  >  Java  >  Detaillierte Einführung in UrlDecoder und UrlEncoder in Java

Detaillierte Einführung in UrlDecoder und UrlEncoder in Java

黄舟
黄舟Original
2017-07-24 15:35:542275Durchsuche

Dienstprogrammklasse für die HTML-Formatkodierung. Diese Klasse enthält statische Methoden zum Konvertieren eines Strings in das application/x-www-form-urlencoded MIME-Format. Im Folgenden werden Ihnen die Kenntnisse von UrlDecoder und UrlEncoder in Java anhand von Beispielcode vorgestellt. Interessierte Freunde sollten gemeinsam einen Blick auf

URLEncoder

Utility-Klasse für die HTML-Formatkodierung. Diese Klasse enthält statische Methoden zum Konvertieren eines Strings in das application/x-www-form-urlencoded MIME-Format. Weitere Informationen zur HTML-Formatkodierung finden Sie in der HTML-Spezifikation.

Verwenden Sie beim Codieren eines Strings die folgenden Regeln:

Die alphanumerischen Zeichen „a“ bis „z“, „A“ bis „Z“ und „0“ bis „9“ bleiben unverändert.

Die Sonderzeichen „.“, „-“, „*“ und „_“ bleiben unverändert.

Das Leerzeichen „ “ wird in ein Pluszeichen „+“ umgewandelt.

Alle anderen Zeichen sind unsicher, daher werden sie zunächst mithilfe eines Codierungsmechanismus in ein oder mehrere Bytes umgewandelt. Jedes Byte wird dann durch eine dreistellige Zeichenfolge „%xy“ dargestellt, wobei xy die zweistellige hexadezimale Darstellung des Bytes ist. Das empfohlene Kodierungsschema ist UTF-8. Wenn jedoch aus Kompatibilitätsgründen keine Kodierung angegeben ist, wird die Standardkodierung für die entsprechende Plattform verwendet.


Zum Beispiel wird bei Verwendung des UTF-8-Kodierungsmechanismus die Zeichenfolge „Die Zeichenfolge ü@foo-bar“ in „Die+Zeichenfolge+%C3%BC%40foo-bar“ konvertiert, da in Bei UTF-8 wird das Zeichen ü als zwei Bytes C3 (hex) und BC (hex) codiert, und das Zeichen @ wird als ein Byte 40 (hex) codiert.

2 URLDecoder

Diese Klasse enthält statische Methoden zum Dekodieren von Strings aus dem application/x-www-form-urlencoded MIME-Format.

Dieser Konvertierungsprozess ist genau das Gegenteil des von der URLEncoder-Klasse verwendeten Prozesses. Es wird davon ausgegangen, dass alle Zeichen in der codierten Zeichenfolge eines der folgenden sind: „a“ bis „z“, „A“ bis „Z“, „0“ bis „9“ und „-“, „_“, „ ." sowie"*". Das Zeichen „%“ ist erlaubt, wird aber als Beginn einer speziellen Escape-Sequenz interpretiert.

Die folgenden Regeln werden bei der Konvertierung verwendet:

Die alphanumerischen Zeichen „a“ bis „z“, „A“ bis „Z“ und „0“ bis „9“ bleiben unverändert.

Die Sonderzeichen „.“, „-“, „*“ und „_“ bleiben unverändert.

Das Pluszeichen „+“ wird in das Leerzeichen „ “ umgewandelt.

behandelt die Formatsequenz „%xy“ als Byte, wobei xy eine zweistellige 8-Bit-Hexadezimaldarstellung ist. Alle Teilzeichenfolgen, die nacheinander eine oder mehrere dieser Bytefolgen enthalten, werden dann durch Zeichen ersetzt, deren Kodierung diese aufeinanderfolgenden Bytes ergibt. Der Kodierungsmechanismus zum Dekodieren dieser Zeichen kann angegeben werden. Wenn nicht angegeben, wird der Standardkodierungsmechanismus der Plattform verwendet.

Dieser Decoder bietet zwei Möglichkeiten, mit illegalen Zeichenfolgen umzugehen. Eine Methode besteht darin, das unzulässige Zeichen zu ignorieren, und die andere Methode besteht darin, eine IllegalArgumentException-Ausnahme auszulösen

Einfaches Beispiel:

Java-Code


try { 
      String encodeStr = URLEncoder.encode("中国", "utf-8"); 
      System.out.println("处理后:" + encodeStr); 
      String decodeStr = URLDecoder.decode(encodeStr, "utf-8"); 
      System.out.println("解码:" + decodeStr); 
    } catch (UnsupportedEncodingException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
    }
Ergebnis ausführen:

Java-Code


Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in UrlDecoder und UrlEncoder in Java. 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