Desenvolvo sites com Java/JSP/Hibernate/Mysql/Eclipse/TomCat.
Após um tempo tomei coragem instalei o linux (Fedora) e resolvi abandonar o windows. Porém estou tendo algums problemas.
Os registros em banco de dados que eu gravo estão perdendo a acentuação no Mysql e estragando o site. Existe alguma configuração no Hibernate de regionalidade para gravar os acentos?
Quando o WebDesigner me passa os arquivos HTML feitos no windows e eu coloco no site tomcat linux ele funciona perfeito, porém quando eu edito o HTML para JSP e coloco a programação pelo Eclipse ele perde os acentos.
O encoding do eclipse no linux é UTF-8, estou achando que é isso que está zoando. Alguém já passou por esses problemas?
Como vc adininhou, o problema eh o encoding sim. Porem, nao necessarimante do Eclipse, mas sim o sistema operacional. Sobre o mysql, voce pode passar o encoding a ser usado na string de conexao, atraves dos parametros “characterEncoding=XXXX” e “useUnicode=true|false”.
Se voce esta usando KDE ou Gnome, nos “painel de controle” deles ha uma parte para mudar o encoding da maquina.
Obrigado pela ajuda. Eu estava perdido dentro de tantos encodings… UTF-8, ISO-8859-1, windows-1252, latin1
pelo que notei o latin1 é o próprio IDO-8859-1
primeiro eu decidi utilizar o UTF-8 (escolhi porque o eclipse sempre abre os arquivos no linux assim) e depois eu fiz as seguintes alterações no sistema.
MYSQL
CREATE TABLE tabela ( codigo int(10) unsigned NOT NULL default ‘0’,
…
) DEFAULT CHARSET=utf8;
ARQUIVOS DE CONTAINER TOMCAT (DataSorce e Realm)
jdbc:mysql://vida/sindsef?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&mysqlEncoding=utf8
o Hibernate use o DataSource e foi resolvido em cascata.
Mas ficou um problema… tem telas no meu sistema que eu uso JDBC ao inves de Hibernate. Nessas telas eu obtenho a conexao do DataSource via JNDI e monto a clausula do javax.sql.Statement com stmt.setString()
Nessas telas antigas gravou errado com utf no JSP/HTML e tive que voltar para o ISO-8859-1.
Estou com um problema desse jeito. Vou ter que deixar metade das paginas com UTF-8 e outra metade (paginas antigas sem componentes por traz usando hibernate) deixarei o ISO-8859-1.
Existe alguma outra configuração para esse problema do JDBC. (vale lembrar que o DataSource do Hibernate e do JDBC é o mesmo no tomcat)