Devo decodificare un URI che contiene una stringa di query; il comportamento di input/output atteso è qualcosa di simile al seguente:Decodifica stringa di query URI 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();
}
Ho provato con java.net.URI, ma sembra di decodificare la stringa di query in modo nell'esempio di cui sopra mi rimane "alias = pos & FirstName = Foo + A & B = C & LastName = Bar "quindi c'è ambiguità se un" & "è un separatore di query o è un carattere in un componente di query.
Edit: Ho appena provato URI.getRawQuery() e non fa la codifica, così posso dividere la stringa di query con un &
, ma poi cosa faccio? Javascript ha decodeURIComponent, non riesco a trovare il metodo corrispondente in Java.
Qualche suggerimento? Preferirei non usare nessuna nuova libreria.
Dal momento che non si vuole per introdurre nuove librerie, posso chiedere in quale ambiente si ricevono questi URI? – stacker