Problemas Acentuação

3 respostas
E

Olá!

Estou utilizando no ambiente que montei:JPA (Toplink) + Mysql + Tomcat.

Na hora em que vou persistir os valores ele esta gravando errado, minha tabela esta com o encode UTF-8, então se vou lá e troco os valores direto na tabela ele mostra da forma correta, aparentemente o problemas esta na hora de persistir, alguém possui alguma ideia?

Obrigado,
Eduardo

3 Respostas

Aldrin_Leal

Confira a configuração do seu driver MySQL. Em particular, as configurações de encoding.

T

verfique se vc consegue utilizar ISO…

P

Não acho que seja exatamente na hora de persistir.

Já tive este tipo de problema em plataformas UTF-8 (Linux) sendo acessados por browsers Windows. Analisando o trace dos pacotes, pude perceber que o POST mandava os dados em ISO-8859-1, mas sem nenhum header indicando a codificação. Neste caso, o Tomcat assume a codificação da plataforma, normalmente UTF-8 no caso Linux. O resultado é que os parâmetros do POST são decodificados de forma incorreta no caso de caracteres acentuados - os demais funcionam pois os primeiros 128 caracteres do UFT-8 batem com ISO-8859-1.

Para comprovar, crie um breakpoint no ponto em que vc. pega os dados do request e analise o resultado no debugger. Se o string estiver com acentuação correta, então o que falei acima não se aplica, e o problema provavelmente está, como indicou o post anterior, no driver. Caso contrário, o problema está na forma de tratar os dados.

Não há uma solução 100% garantida, pois todas dependem de boa vontade do browser, mas eis algumas coisas que ajudam:

  1. Mande headers com o “content-encoding” corretamente configurados
  2. Mande suas páginas com a PI <? cml version="1.0" encoding="xxx" ?>
  3. Mande o tag
  4. No caso de form com POST, especifique o atributo enctype=“multipart/form-data”.
  5. Inclua um campo hidden no form contendo um caracter acentuado (ex ‘á’. No tratamento do request, vc. testa o string recebido e, se não bater com o o valor esperado, dá para assumir meleca no envio…
Criado 15 de julho de 2007
Ultima resposta 16 de jul. de 2007
Respostas 3
Participantes 4