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)
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
marciocamurati
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
T
thingol
Tente este exemplo, para aprender a usr URLDecoder.
importjava.net.URLDecoder;importjava.io.UnsupportedEncodingException;/* * Para rodar isto no Windows: * javac TesteURLDecoder.java * chcp 1252 * java -cp . TesteURLDecoder */classTesteURLDecoder{publicstaticvoidmain(String[]args)throwsUnsupportedEncodingException{// 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"));}}
andre_a_s
Será que o URL Decoder não resolve o seu problema?
B
Bjornn_Borg
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…