Palavras com acentuação através de URL

4 respostas
java
H

Olá,

Um fornecedor nosso retorna uma URL com o seguinte formato:

http://localhost:8080/MyServlet?code=123&description=Conforme+legislação+municipal+esta+prestação+de+serviço+não+deve+ter+o+imposto+retido

Porém não estou conseguindo recuperar a mensagem com acentuação correta. Já fiz as seguintes tentativas:

request.setCharacterEncoding( "UTF-8" );
log.info( "UTF-8 " + request.getParameter( "motivo" ) );
log.info( "Forçando encoding para UTF-8 " + new String(request.getParameter("motivo").getBytes("UTF-8" ), "UTF-8" ) );
request.setCharacterEncoding( "US-ASCII" );
log.info( "US-ASCII " + request.getParameter( "motivo" ) );
log.info( "Forçando encoding para US-ASCII " + new String( request.getParameter( "motivo" ).getBytes( "US-ASCII" ), "US-ASCII" ) );
request.setCharacterEncoding( "ISO-8859-1" );
log.info( "ISO " + request.getParameter( "motivo" ) );
log.info( "Forçando encoding para ISO " + new String( request.getParameter( "motivo" ).getBytes( "ISO-8859-1" ), "ISO-8859-1" ) );

Resultados:
UTF-8 Conforme legislação municipal esta prestação de serviço não deve ter o imposto retido
Forçando encoding para UTF-8 Conforme legislação municipal esta prestação de serviço não deve ter o imposto
US-ASCII Conforme legislação municipal esta prestação de serviço não deve ter o imposto retido
Forçando encoding para US-ASCII Conforme legisla???o municipal esta presta???o de servi??o n??o deve ter o imposto retido
ISO Conforme legislação municipal esta prestação de serviço não deve ter o imposto retido
Forçando encoding para ISO Conforme legislação municipal esta prestação de serviço não deve ter o imposto retido

Alguma idéia?
Obrigado desde já.

4 Respostas

L

Como você está montando a URL?

H

Isso vem da aplicação do nosso fornecedor.

L
String txt = new String(request.getParameter("motivo").getBytes(), "UTF-8");

Você sabe qual a codificação da página onde o link está?

H

Falaram em ANSI, mas era UTF-8.
Estava fazendo da forma errada. Desta forma resolveu:
new String(request.getParameter(“motivo”).getBytes(), “UTF-8”);

Obrigado!

Criado 25 de abril de 2016
Ultima resposta 25 de abr. de 2016
Respostas 4
Participantes 2