Ich muss einen URI dekodieren, der eine Abfragezeichenfolge enthält; erwartetes Ein-/Ausgabeverhalten ist so etwas wie die folgende:Entschlüsselungs-URI-Abfragezeichenfolge in Java
abstract class URIParser
{
/** example input:
* something?alias=pos&FirstName=Foo+A%26B%3DC&LastName=Bar */
URIParser(String input) { ... }
/** should return "something" for the example input */
public String getPath();
/** should return a map
* {alias: "pos", FirstName: "Foo+A&B=C", LastName: "Bar"} */
public Map<String,String> getQuery();
}
Ich habe versucht, java.net.URI verwenden, aber es scheint, den Query-String zu dekodieren so in dem obigen Beispiel I mit „alias = po & Vorname = links bin Foo + A & B = C & LastName = Balken "so gibt es Mehrdeutigkeit, ob ein" & "ein Abfragetrennzeichen ist oder ein Zeichen in einer Abfragekomponente ist.
Edit: Ich habe gerade versucht URI.getRawQuery() und es ist die Codierung nicht tun, so kann ich das Query-String mit einem &
gespalten, aber dann, was soll ich tun? Javascript hat decodeURIComponent, ich kann nicht scheinen, die entsprechende Methode in Java zu finden.
Irgendwelche Vorschläge? Ich würde es vorziehen, keine neuen Bibliotheken zu verwenden.
Da Sie nicht wollen, basierend hüllt Um neue Bibliotheken einzuführen, darf ich fragen, in welcher Umgebung Sie diese URIs erhalten? – stacker