Outra vez o problema dos acentos!

Amigos,
Perdoem-me! Sei que o assunto é batido, mas nao consegui resolver.
Tenho uma aplicaçao com SPRING MVC e JPA, criei um formulário simples, com um campo só para testar tudo. Se eu envio uma palavra com acento ou outro caractere especial, o hibernate gera o seguinte SQL:

insert into Identifiable (name) values (?)
Ou seja, troca tudo por uma interrogaçao doida.
Detalhes:
[list]Estou usando Netbeans;
[list]O banco É MySQL, sendo o charset latin1, latin1_swedish_ci, ou seja se eu tentar inserir algum caractere especial usando outro cliente, funciona corretamente;[/list]
[list]Nao encontrei uma forma de definir o colation geral do projeto no Netbeans, mas mudei os de todas as páginas envolvidas.[/list]
[list]Segue a configuraçao da unidade de persistencia:
[/list]

<?xml version="1.0" encoding="UTF-8"?> <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"> <persistence-unit name="SpecialistProPU" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <class>org.specialistpro.domain.Identifiable</class> <exclude-unlisted-classes>false</exclude-unlisted-classes> <properties> <property name="hibernate.connection.username" value="root"/> <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/> <property name="hibernate.connection.password" value=""/> <property name="hibernate.connection.charset" value="ISO8859-1"/> <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/specialistpro"/> <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/> <property name="hibernate.hbm2ddl.auto" value="update"/> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.format_sql" value="true"/> </properties> </persistence-unit> </persistence>
Já grato pela ajuda de sempre!
MaLSan

Caro colega;

Tive este problema de encoding de caracteres na minha aplicação quando retornava, por exemplo, um XML do meu servidor para o meu browser. O que fiz então foi uma pequena biblioteca que continha a função abaixo que era responsável por re-codificar uma string:

[code] public String encodeString(String strIn){
// possíveis testados
//“ISO-8859-1”, “UTF-8”, “Windows-1252”, “encoding”

	String encodeDestino = "ISO-8859-1";
	String encodeOrigem = "UTF-8";
	
	try {
		byte[] bytes =  strIn.getBytes(encodeOrigem); // encodeOrigem
		String newString = new String(bytes, encodeDestino);
					
		return newString;
	} catch (UnsupportedEncodingException e) {
		logger.error(e);
	}
	return strIn;
}[/code]

Isso me acontecia por casa das diferencas dos navegadores então eu tinha que fazer uma verificação no meu servlet para qual navegador eu estaria mandando a resposta:

Repare abaixo o uso da função acima descrita: ‘encodeString’.

	[code]if(req.getHeader("User-Agent").contains("MSIE")){
		resposta = util.encodeString(resposta);
		//logger.trace(req.getHeader("User-Agent"));
	}
	
	resp.getWriter().print(resposta);[/code]

Sei que não estou te dando uma resposta direta de como resolver o seu problema, porém espero poder ter te ajudado de alguma forma…

Prezado amigo,
Obrigado pela sua dica. Eu posso tentar fazer algo parecido, mas acredito que deva existir uma soluçao nao programatica para isto.
Vou continuar tentando e, se desobrir alguma coisa posto por aqui!
Obrigado a todos!
MaLSan

Alguèm tem alguma idéia?

Isso foi um não?