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é
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