En Java, que necesitan para utilizar HTTP POST para enviar la solicitud al servidor, pero si en el parámetro de la URL contiene algún carácter especial se lanza a continuación ExcepciónURL y decodificación de caracteres especiales en Java
java. lang.IllegalArgumentException: URLDecoder: Los caracteres ilegales hexagonales en de escape (%) de patrones - para cadena de entrada: "& '"
El código para enviar datos
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);
Y en el lado del servidor, yo uso el código de abajo para leer la información
String data = request.getParameter(param1);
if (data != null) {
actionArg = new ChannelArg(URLDecoder.decode(data, "UTF-8"));
}
El código funciona correctamente, pero si de entrada un poco de carácter especial como [a あ あ # $% & '(<>? /., あ あ あ,,), arrojará una excepción. Me pregunto si alguien podría ayudarme con alguna pista para poder codificar y decodificar personajes especiales.
Muchas gracias de antemano.
Supervisé mejores soluciones. Nuestros amigos de apache tienen StringEscapeUtils (org.apache.commons.lang.StringEscapeUtils). Por favor, compruebalo si funciona. –