Encoding/charset das jsp

0 respostas
J

Olá pessoal do fórum, estou com um problemas no encoding/charset das minhas jsp. Eu tenho o seguinte código nas páginas:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

Isso funciona perfeitamente quando as requisições são @Post, no meu caso quando eu insiro um objeto no banco com propriedades com caracteres especiais.
Exemplo. contato.nome = andré

Mas não funciona quando a requisição é um @Get, quando eu executo uma busca em que o parâmetro vai na URL. Numa busca minha URL fica assim:
http://localhost:8080/eventos/busca?nome=andré

Quando a busca ocorre desse jeito, meu Controller recebe o parâmentro assim: andré

Aí eu pessei: "É só trocar o charset da página". Exemplo:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>

Mas nesse caso as coisas se invertem, na hora do insert, os caracteres chegam errados ao banco de dados e os parâmetros das URL ficam corretos. Exemplo:

http://localhost:8080/eventos/eventos/busca?nome=andr%C3%A9

Alguém já passou por isso? Alguma idéia como resolver.

Obs.: Eu uso MySQL com collaction = UTF-8 e Vraptor com a seguinte configuração
<context-param>  
       <param-name>br.com.caelum.vraptor.encoding</param-name>  
       <param-value>UTF-8</param-value>  
    </context-param>

Grato a todos pela atenção.

Jonh Paulo

Criado 3 de dezembro de 2012
Respostas 0
Participantes 1