En Java, je dois utiliser HTTP Post pour envoyer une demande au serveur, mais si dans le paramètre de l'URL contient un certain caractère spécial, il jette ci-dessous ExceptionURL Encode et Decode caractère spécial en Java
java. lang.IllegalArgumentException: URLDecoder: motif caractères hexadécimaux illégaux dans évasion (en%) - pour chaîne d'entrée: "& « "
Le code pour envoyer des données
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(URL);
String sessionId = RequestUtil.getRequest().getSession().getId();
String data = arg.getData().toString();
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair(param1, data));
params.add(new BasicNameValuePair(param2, sessionId));
httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
HttpResponse response = (HttpResponse) httpclient.execute(httpPost);
Et du côté du serveur, j'utiliser le code ci-dessous pour lire les informations
String data = request.getParameter(param1);
if (data != null) {
actionArg = new ChannelArg(URLDecoder.decode(data, "UTF-8"));
}
Le code fonctionne correctement, mais si je entrée un certain caractère spécial comme [un あ あ # $% & « (<>? /., Will あ あ あ あ], il va lancer une exception. Je me demande si quelqu'un pourrait m'aider à être en mesure d'encoder et de décoder les caractères spéciaux?
Merci beaucoup d'avance.
J'ai supervisé une meilleures solutions. Nos amis d'apache ont StringEscapeUtils (org.apache.commons.lang.StringEscapeUtils). Veuillez le vérifier si cela fonctionne. –