Olá pessoal!
Estão aparecendo alguns caracteres estranhos quando salvo informações com acentuação em minha aplicação.
Já procurei saber o que pode estar acontecendo de errado, e descobri que devo setar no arquivo de configuração do Hibernate o encoding para UTF-8.
Tentei de várias maneiras setar esta propriedade, porém não tive êxito. E não sei se é somente esta configuração que devo setar…
Segue abaixo o código do meu arquivo hibernate.cfg.xml:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="hibernateSessionFactory">
<property name="hibernate.connection.url">jdbc:postgresql://linux4.faespsenar.com.br:5432/pg_sicp?setUnicode=true;characterEncoding=UTF-8;</property>
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="hibernate.connection.username">faespsenar</property>
<property name="hibernate.connection.password">!faespsenar@</property>
<property name="hibernate.connection.pool_size">0</property>
<property name="hibernate.bytecode.use_reflection_optimizer">true</property>
<property name="hibernate.generate_statistics">false</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.show_sql">false</property>
<!-- # Cache de Segundo nivel habilitado (Chace de consulta repetidas) # -->
<property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
<property name="hibernate.cache.use_query_cache">true</property>
<property name="hibernate.cache.use_structured_entries">true</property>
<property name="hibernate.cache.use_second_level_cache">true</property>
<!-- # Atualizacao em Lote # -->
<property name="hibernate.jdbc.batch_size">1000</property>
</session-factory>
</hibernate-configuration>
Alguém têm alguma sugestão?
Obrigado.
Tente assim:
...
<property name="hibernate.connection.url">jdbc:postgresql://linux4.faespsenar.com.br:5432/pg_sicp?charSet=LATIN1;</property>
...
[]'s
JL
P.S.: Verifique se antes de você inserir o dado no banco, o conteudo da String que você vai salvar está correta.
[quote=Mero_Aprendiz]Tente assim:
...
<property name="hibernate.connection.url">jdbc:postgresql://linux4.faespsenar.com.br:5432/pg_sicp?charSet=LATIN1;</property>
...
[]'s
JL
P.S.: Verifique se antes de você inserir o dado no banco, o conteudo da String que você vai salvar está correta.[/quote]
LATIN1 não! Devo setar como UTF-8!!! Já tentei desta forma antes e não funcinou!
Sim, o conteúdo da string está correto!
[quote=rodrigo.fai]
LATIN1 não! Devo setar como UTF-8!!! Já tentei desta forma antes e não funcinou!
Sim, o conteúdo da string está correto![/quote]
Qual é o encoding do banco?
[]'s
JL
[quote=Mero_Aprendiz][quote=rodrigo.fai]
LATIN1 não! Devo setar como UTF-8!!! Já tentei desta forma antes e não funcinou!
Sim, o conteúdo da string está correto![/quote]
Qual é o encoding do banco?
[]'s
JL[/quote]
O encoding do banco é LATIN1! Mais será que devo alterar o encoding do banco de todas as estações?
Dá uma olhada no link abaixo
quem sabe ele possa te ajudar
http://www.roseindia.net/hibernate/firstexample.shtml
Espero ter Ajudado[]
[quote=Jo? Ant?io]Dá uma olhada no link abaixo
quem sabe ele possa te ajudar
http://www.roseindia.net/hibernate/firstexample.shtml
Espero ter Ajudado[][/quote]
É um artigo básico sobre Hibernate, não menciona nada sobre encoding!
[quote=rodrigo.fai][quote=Jo? Ant?io]Dá uma olhada no link abaixo
quem sabe ele possa te ajudar
http://www.roseindia.net/hibernate/firstexample.shtml
Espero ter Ajudado[][/quote]
É um artigo básico sobre Hibernate, não menciona nada sobre encoding![/quote]
[quote=rodrigo.fai]
O encoding do banco é LATIN1! Mais será que devo alterar o encoding do banco de todas as estações?[/quote]
Bem, se o encoding do seu banco é Latin1, então a alterção que te falei deveria funcionar, a não ser que a String que você vai inserir já esteja com os caracteres trocados antes do insert.
Não entendi bem quando você disse que: “Mais será que devo alterar o encoding do banco de todas as estações?”, mas o que sei é que todos os acessos ao banco devem ter Latin1.
Você tentou inserir um registro de teste, no console do Postgres mesmo, exemplo: insert into Tabela values (‘ãããáááÀÀÂÂÂÂ’).
Veja se esse tipo de teste realmente grava os registros no banco com os acentos.
[]'s
JL
[quote=Mero_Aprendiz][quote=rodrigo.fai]
O encoding do banco é LATIN1! Mais será que devo alterar o encoding do banco de todas as estações?[/quote]
Bem, se o encoding do seu banco é Latin1, então a alterção que te falei deveria funcionar, a não ser que a String que você vai inserir já esteja com os caracteres trocados antes do insert.
Não entendi bem quando você disse que: “Mais será que devo alterar o encoding do banco de todas as estações?”, mas o que sei é que todos os acessos ao banco devem ter Latin1.
Você tentou inserir um registro de teste, no console do Postgres mesmo, exemplo: insert into Tabela values (‘ãããáááÀÀÂÂÂÂ’).
Veja se esse tipo de teste realmente grava os registros no banco com os acentos.
[]'s
JL[/quote]
Eu gostaria de fazer um teste trocando o encoding do banco para UTF-8, para ver se da certo! Mais não consigo alterar!
Já tentei de várias maneiras tracando o encoding no hibernate.cfg.xml para UTF-8 mais não vai de jeito nenhum!!!
[quote=rodrigo.fai][quote=Mero_Aprendiz][quote=rodrigo.fai]
O encoding do banco é LATIN1! Mais será que devo alterar o encoding do banco de todas as estações?[/quote]
Bem, se o encoding do seu banco é Latin1, então a alterção que te falei deveria funcionar, a não ser que a String que você vai inserir já esteja com os caracteres trocados antes do insert.
Não entendi bem quando você disse que: “Mais será que devo alterar o encoding do banco de todas as estações?”, mas o que sei é que todos os acessos ao banco devem ter Latin1.
Você tentou inserir um registro de teste, no console do Postgres mesmo, exemplo: insert into Tabela values (‘ãããáááÀÀÂÂÂÂ’).
Veja se esse tipo de teste realmente grava os registros no banco com os acentos.
[]'s
JL[/quote]
Eu gostaria de fazer um teste trocando o encoding do banco para UTF-8, para ver se da certo! Mais não consigo alterar!
Já tentei de várias maneiras tracando o encoding no hibernate.cfg.xml para UTF-8 mais não vai de jeito nenhum!!![/quote]
Depurei o código aqui e descobri que os caracteres estranhos estão chegando da .jsp!!!
De uma olhada no cabeçalho da minha página:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib tagdir="/WEB-INF/tags" prefix="t"%>
<%@ attribute name="entity" required="true"%>
<%@ attribute name="collection" required="true" type="java.util.Collection"%>
<%@ attribute name="ehPermitidoAlterar" required="false"%>
<fmt:setLocale value="pt_BR" scope="session"/>
Será que falta algo?
Valeu.