En Java, je veux convertir ceci :
https%3A%2F%2Fmywebsite%2Fdocs%2Fenglish%2Fsite%2Fmybook.do%3Frequest_type
A ceci :
https://mywebsite/docs/english/site/mybook.do&request_type
Voici ce que j'ai jusqu'à présent :
class StringUTF
{
public static void main(String[] args)
{
try{
String url =
"https%3A%2F%2Fmywebsite%2Fdocs%2Fenglish%2Fsite%2Fmybook.do" +
"%3Frequest_type%3D%26type%3Dprivate";
System.out.println(url+"Hello World!------->" +
new String(url.getBytes("UTF-8"),"ASCII"));
}
catch(Exception E){
}
}
}
Mais ça ne fonctionne pas correctement. Que sont ces %3A
et %2F
et comment les convertir ?
0 votes
@Stephen Pourquoi une url ne peut-elle pas être une chaîne codée en UTF-8 ?
0 votes
Le problème est que, juste parce que l'URL peut être UTF-8, la question a réellement rien à faire avec UTF-8. J'ai modifié la question en conséquence.
0 votes
C'est possible (en théorie) mais la chaîne de votre exemple n'est pas une chaîne codée UTF-8. Il s'agit d'une chaîne ASCII codée par URL. Le titre est donc trompeur.
0 votes
Il est également intéressant de noter que tous les personnages de la
url
sont ASCII, et ceci est également vrai après que la chaîne ait été décodée par URL.'%'
est un caractère ASCII et%xx
représente un caractère ASCII sixx
est inférieur à (hexadécimal)80
.