Codificação UTF-8

Boa tarde a todos.

Criei um projeto utilizando o framework vraptor. Internamente, o projeto funciona que é uma beleza. Após ter sido feito o deploy, os dados que são cadastrados no banco, ficam com codificação estranha… Não sei o que pode estar acontecendo.

Quando visualizo uma página do site e peço para visualizar a codificação da página, a página está em UTF-8. Porém quando mando gravar, e depois visualizo as informações tanto no banco quanto na página, fica com aquelas acentuações estranhas.

Acredito que:

Em algum momento, os arquivos java, estão “desconvertendo” a informação e gravando errado no banco. Pois não vejo outra explicação. Alguem poderia me ajudar?

Desde já, Agradeço e que Jesus abençoe a todos. Jesus os ama.

o seu banco provavelmente não está em UTF-8… se a codificação do banco e das suas páginas são diferentes, acontece esse tipo de problema

Lucas, aquela configuração do web.xml que era necessário especificar o encoding ainda é necessária? Ou se eu não especificar nada o padrão será UTF-8?

o padrão é não mexer no encoding…

se quiser mexer precisa da configuração

eu nao gosto do padrao UTF-8, tem hora que dar umas merdas com acento, uso o padrao ISO.

Opa,

veja bem, só use banco em ISO-8859-1 em último caso…

Sobre codificação o melhor post sobre assunto é esse aqui:

http://www.guj.com.br/posts/list/12456.java

fw

Lucas, pelos testes que fiz o vraptor não usa utf-8 como padrão, correto? Se eu não coloco o context-param para utf-8 os caracteres ficam todos deformados.

Ou caso eu não colocar o br.com.caelum.vraptor.encoding ele herda do container? Pela especificação o padrão é iso-8859-1.

se vc não colocar a configuração, o VRaptor não vai fazer nada a respeito do encoding… então vai, por exemplo, herdar do container

Pois é pessoal, eu tenho uma situação muito parecida com o problema mencionado logo no início, porém meu banco foi criado com ISO-8859-1 (LATIN1) e por este motivo o projeto WEB foi todo desenvolvido com charset ISO-8859-1, mas tem uma pequena parte de um .JSP que é feito uma chamada para uma .TAG e justamente neste local não esta funcionando corretamente o mapa de caracteres definido (ISO-8859-1), não sei mais o que fazer, já tentei quase tudo.

Alguém tem alguma ideia do que pode estar ocorrendo ?

NOTA: Em todas as outras telas .JSP a persistência no banco com dados acentuados é feita corretamente, só nesta .TAG criada via JSTL que não envia para o Hibernate corretamente, ou seja, só envia caracteres estranhos no local da acentuação.

Obrigado a todos.

[b]
EDITADO

[/b]
Para aqueles que estão tendo problemas com o charset adequado ao banco de dados, nunca se esquecer e informar o “encoding” correto e principalmente se estiverem enviando dados acentuados via AJAX, informar os seguintes parâmetros:

encoding = charset correto para o seu banco
contentType = 'application/x-www-form-urlencoded’

Sendo assim pelo prototype, usando o charset ISO-8859-1, ficará assim:

var myAjax = new Ajax.Request(url, {
	/*
	Para evitar o problema de acentuação entre UTF-8 e ISO-8859-1 (LATIN1)
	é necessário aplicar o "encoding" e também "contentType",
	porém NUNCA se esquecer de enviar pelo método POST.
	*/                                
	method: 'post',
	encoding: 'ISO-8859-1',
	contentType: 'application/x-www-form-urlencoded',
	asynchronous: true,
	parameters: "endereco.id="+document.getElementById("id").value+"&endereco.logradouro="+document.getElementById("logradouro").value,
	onComplete: function(data) {
		//recebe o objeto json e faz eval
		var jsonObject = eval('(' + data.responseText + ')');

		if (jsonObject.erros != null)
			alert(jsonObject.erros);
		else
			alert('Dados enviados com sucesso!');
	},
	onFailure: function(t) {
		alert('Error ' + t.status + ' -- ' + t.statusText)
	}
});

Espero que ajude a esclarecer algumas dúvidas ou direcionar a um caminho de sucesso.