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-factoryname="hibernateSessionFactory"><propertyname="hibernate.connection.url">jdbc:postgresql://linux4.faespsenar.com.br:5432/pg_sicp?setUnicode=true;characterEncoding=UTF-8;</property><propertyname="hibernate.connection.driver_class">org.postgresql.Driver</property><propertyname="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property><propertyname="hibernate.connection.username">faespsenar</property><propertyname="hibernate.connection.password">!faespsenar@</property><propertyname="hibernate.connection.pool_size">0</property><propertyname="hibernate.bytecode.use_reflection_optimizer">true</property><propertyname="hibernate.generate_statistics">false</property><propertyname="hibernate.format_sql">true</property><propertyname="hibernate.show_sql">false</property><!-- # Cache de Segundo nivel habilitado (Chace de consulta repetidas) # --><propertyname="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property><propertyname="hibernate.cache.use_query_cache">true</property><propertyname="hibernate.cache.use_structured_entries">true</property><propertyname="hibernate.cache.use_second_level_cache">true</property><!-- # Atualizacao em Lote # --><propertyname="hibernate.jdbc.batch_size">1000</property></session-factory></hibernate-configuration>
É um artigo básico sobre Hibernate, não menciona nada sobre encoding!
M
Mero_Aprendiz
rodrigo.fai:
O encoding do banco é LATIN1! Mais será que devo alterar o encoding do banco de todas as estações?
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
R
rodrigo.fai
Mero_Aprendiz:
rodrigo.fai:
O encoding do banco é LATIN1! Mais será que devo alterar o encoding do banco de todas as estações?
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
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!!!
R
rodrigo.fai
rodrigo.fai:
Mero_Aprendiz:
rodrigo.fai:
O encoding do banco é LATIN1! Mais será que devo alterar o encoding do banco de todas as estações?
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
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!!!
Depurei o código aqui e descobri que os caracteres estranhos estão chegando da .jsp!!!