Pessoal, tenho um parâmetro que é passado na url que é o nome de um arquivo(imagem=nome_imagem.gif).
Esse parâmetro é recuperado em um servlet e eu leio o arquivo que contém o nome especificado. O problema é que qdo o nome do arquivo tem acento(ex.: pôr do sol.jpg) e servlet recupera o param via getRequestParameter, obtém um valor do tipo p%&#@r do sol.jpg. Aí, consequentemente eu vou receber um FileNotFoundException no decorrer da execução…
Como faço para recuperar o conteúdo do request corretamente?(pôr do sol.jpg)
Obrigado
A acentuacao eh trocada por um % seguido de 2 caracteres que representam o codigo hexadecimal da letra. Nao ha o que voce fazer, caso a requisicao seja GET.
Rafael
Seguinte,
Acentuação em nome de arquivo é uma coisa um pouco complicada e fora de padrões não acha ? Espaço também não é uma coisa muito usual, na minha opnião seria mais facil você renomear os arquivos do que ficar quebrando a cabeça, tentando criar métodos para este problema.
[]s
Tente este exemplo, para aprender a usr URLDecoder.
import java.net.URLDecoder;
import java.io.UnsupportedEncodingException;
/*
* Para rodar isto no Windows:
* javac TesteURLDecoder.java
* chcp 1252
* java -cp . TesteURLDecoder
*/
class TesteURLDecoder {
public static void main(String[] args) throws UnsupportedEncodingException {
// Note que o meu browser codificou "ô" como "%F4". Se ele
// usasse UTF-8 ia codificar em 2 bytes (%xx%xx) em vez de 1 só (%xx),
// então você deveria decodificar como "UTF-8".
System.out.println (URLDecoder.decode ("p%F4r%20do%20sol.htm", "ISO-8859-1"));
}
}
Será que o URL Decoder não resolve o seu problema?
Vou testar o URLDecoder. Acho que é o que eu estava procurando.
Eu estava procurando alguma coisa no request ou no response, mas parece que é isso que eu quero.
Gostaria de agradecer às outras pessoas que responderam e dizer que pelo menos por enquanto quero utilizar pq estou fazendo uma janela de upload e o arquivo do usuário pode ter qq nome…