Caracteres estranhos da url

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…