Domanda

Mi sono appena imbattuto in qualcosa del genere:

String sample = "somejunk+%3cfoobar%3e+morestuff";

Stampato, il campione è simile al seguente:

  

somejunk + <foobar gt &; + Morestuff

Come funziona? U + 003c e U + 003e sono i codici Unicode per i segni minore e maggiore, rispettivamente, che sembrano più di una coincidenza, ma non ho mai sentito parlare di Java fare automaticamente qualcosa del genere. Ho pensato che sarebbe stato facile entrare in Google, ma risulta che a Google non piace il segno di percentuale.

È stato utile?

Soluzione

Puoi fare qualcosa del genere,

    String sample = "somejunk+%3cfoobar%3e+morestuff";
    String result = URLDecoder.decode(sample.replaceAll("\\+", "%2B"), "UTF8");

Altri suggerimenti

Quella stringa è probabilmente URL codificato Dovresti decodificarlo in java usando il URLDecoder

String res = java.net.URLDecoder.decode(sample, "UTF8");

Java supporta gli escape Unicode in char e String valori letterali, ma non la codifica URL.

Le escape Unicode usano '\uXXXX', dove XXXX è il punto Unicode in esadecimale.

Curiosità: la grammatica consente a 'u' di verificarsi più volte, in modo che '\uuuuuuuu0041' sia una fuga Unicode valida (per 'A').

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top