O velho problema do charset - UTF-8 não funciona [RESOLVIDO]

8 respostas
H

Olá pessoal,

Estou desenvolvendo uma aplicação Web,

  • Os jsp’s estão com charset UTF-8,
  • O meu banco é o MySQL e ele foi criado com o UTF-8
  • Eu uso o Apache Tomcat 6 e utilizo o pool de conexões via JNDI

Mas quando gravo informações no banco os dados ficam com vários caracteres malucos.

Alguém sabe o que poderia ser, pois as páginas e o banco estão com o mesmo charset?
Será que é porque eu uso o pool do Tomcat?

Obs: Quando o banco está em Latim-1 e as páginas em ISO-8859-1 tudo funciona.

Obrigado galera.

8 Respostas

A

tentou:

<%@page contentType="text/html" pageEncoding="UTF-8"%> ?

H

[quote=andredecotia]tentou:

<%@page contentType="text/html" pageEncoding="UTF-8"%>

Então andredecotia eu tentei sim, e no meu post eu comentei que as páginas estão em utf-8 e o banco tmb. Eu utilizo o pool o container tomcat para gerenciar minhas conexões pode ser isso?

Na hora de configurar o JNDI preciso especificar o charset?

Abraço.

T

Fala aí fera, coloca o seguinte no servlet:

request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8");

T

Obrigado tc_medeiros, resolvi meu problema com sua dica, assim como o colega acima eu uso JNDI, tem que colocar o cl_ctype= na string de conexao sim…

T

Que bom targas, fico feliz por vc, espero que nosso amigo do post inicial tb tenha resolvido.

H

Fala pessoal,

Então eu mudei o projeto para ISO-8859-1, mas vou tentar fazer a mundança na string de conexão com o banco, atualmente o meu context.xml está assim:

<?xml version="1.0" encoding="UTF-8"?> <Context antiJARLocking="true" path="/lousadinamica"> <Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" maxActive="25" maxIdle="10" maxWait="-1" name="jdbc/lousadinamica" username="root" password="admin" type="javax.sql.DataSource" url="jdbc:mysql://localhost/lousadinamica?autoReconnect=true"/> </Context>

Onde eu devo especificar o charset?

Abraços galera

H

tc_medeiros:
Fala aí fera, coloca o seguinte no servlet:

request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8");

tc_medeiros a sua dica deu certo adicionei estas duas linhas no meu servlet e agora os dados estão sendo inseridos corretamente no banco.

Muito obrigado e estou a disposição.

Abraço

T

Anteriormente participei deste post e resolvi meu problema com ele, agora atualizei meu SO para windows 7 e netbeans 6.9.1 e os comandos

request.setCharacterEncoding(“UTF-8”);
response.setCharacterEncoding(“UTF-8”);

não são mais reconhecidos pelo netbeans, aparecem como linhas de erro.

Alguem sabe o que é isso?

Criado 17 de setembro de 2010
Ultima resposta 27 de dez. de 2010
Respostas 8
Participantes 4