Problema com acentuação

Olá, estou com um problema ao requisitar dados de um servidor quando existe acentuação nos parâmetros. O problema nem chega ao banco de dados, portanto devo ter que codificar a String da URL antes de fazer o chamado. Alguem sabe como? Vi aqui no guj alguns modos de fazer isso somente ao receber dados. Obrigado.

É o nome do parâmetro que tem acento? (Que feio)

Por exemplo, http://seuservidor/suaaplicacao/teste.jsp?parâmetro=valor

Tire os acentos dos nomes dos parâmetros. Isso não é muito “portável”.

não… de jeito nenhum! (oO) são os valores dos parâmetros… tipo:
interface?q=insert into recados (mensagem) values (‘Olá’)&u=user&s=senha

Hum, você não pode montar sua string desse jeito. Você precisa usar a classe java.net.URLEncoder, se não me engano.

Aí os espaços serão convertidos para “+”, os acentos para %<código hexadecimal>, etc.

E qual char set usar? Já tentei:
URLEncoder.encode(query, “ISO-8859-1”);
e
URLEncoder.encode(query, “UTF-8”);
e não vi nenhuma mudança na String… 8/

URLEncoder não modifica sua string, porque strings são imutáveis.

import java.net.*;

class TesteURLEncoder {
    public static void main(String[] args) throws Exception {
        // Note que URLEncoder deve ser aplicado a cada parte de sua query, não à query inteira.
        String s = "http://servidor/aplicacao/";
        s += "interface?" + "q=" + URLEncoder.encode ("insert into recados (mensagem) values ('Olá')", "UTF-8");
        s += "&u=" + URLEncoder.encode ("user", "UTF-8");
        s += "&s=" + URLEncoder.encode ("senha", "UTF-8");
        // Deve imprimir:
        // ... interface?q=insert+into+recados+%28mensagem%29+values+
        // %28%27Ol%C3%A1%27%29&u=user&s=senha
        System.out.println (s);
    }
}

Acabei de ver um exemplo parecido… Valew d+ pela prontidão… 5 estrelinhas brother!

Só para constar (caso alguém leia), funcionou perfeitamente…