Problemas com codificação

4 respostas
eduardo.exs

Turma, quando escrevo resultados do banco na jsp, ele bagunça os caracteres.

Minha página contém:

<META http-equiv="Content-Type" content="text/html; charset=UTF-8">

Bem como:

No tomcat server.xml coloquei no connector APR (minha aplicação utiliza https) o padão URIEncoding=“UTF-8”

Já tentei um monte de coisas mas não adianta pelo client mysql eu vejo e a informação ta ok (utf-8)
Quando mando o objeto java escrever seu conteúdo via getProperty() ele não respeita a formatação

Pode ser infantilidade minha, mas existe, ou melhor, é necessário algum recurso para ler os dados no objeto String obrigando alguma formatação?

Outra coisa, uso linux + eclipse + jdk 6 + tomcat 7

Poderia ser alguma configuração da jvm no linux??!?!?

Já não sei mais o que fazer, tentei muita coisa ja

4 Respostas

MABS

Olá, eduardo.exs.

Me parece que você não esta usando nenhum Framework MVC, correto?

Como você esta criando as suas JSP’s, se poder, por favor, passar os códigos com todos os processos (Controllers, Model e Viewer) desta situação. Esta um pouco difícil de saber o que esta acontecendo sem os códigos.

Sucesso!
Abraço!

jaboot

O seu projeto tem/lê algum arquivo properties do sistema? Não tem como setar isso lá?

Outra coisa, você deve receber essa informação do banco em alguma classe dao ou algo assim, certo? Está zoado desde lá?

eduardo.exs

Desculpem a demora em responder, estava mexendo com outras questões e dexei pra mexer com este problema de codificação depois…

O problema foi muito simples quando resolvido: As informações cadastradas no banco haviam sido inseridas via client mysql em terminal através de cláusula insert básica. Desde então as informações não haviam sido sobrescritas nesta tabela (o terminal envia caracteres em codificação cp, e o que eu lia através do client do banco voltava ok porém quando eu lia utf-8 ele bagunçava tudo. Simplesmente dropei meu banco e adicionei os dados de teste no próprio script via arquivo texto utf-8, quando havia testado através de requisição http também havia se comportado como esperado (utf-8). Tudo deu certo. É o típico problema que se gasta muito tempo pra uma solução praticamente inesperada… acho que isso sempre acontece né?

Obrigado mais uma vez.

OBS: Realmente não estou utilizando nenhum framework, porém codifico meu projeto utilizando o padrão mvc porém sob uma perspectiva diferente, no meu caso eu tenho 90% de código java pra 10% de código web(html + css + xml + javascript), acho que os frameworks não andam permitindo tal proximidade atualmente né :wink: ?

eduardo.exs

Neste caso vou dar algumas observações que podem ser úteis a alguém

1º - verifiquei que o objeto String em java tenta automaticamente “prever” a formatação.

2º - não foi necessário a definição de charset para o conector APR muito menos alguma interferência causada por uso de https

3º - Não é necessário o uso da tag para definição de charset, a diretiva page na própria especificação é quem se responsabiliza pela do conteúdo jsp

A única coisa que pegou mesmo foi que qdo inseri via terminal do banco o terminal é setado por padrão pra cp1222 então até verificar que era isso foi-se muito tempo então dexei pra mexer com outras coisas e um dia fiz um teste e deu certo, então agora como prática adotei o uso da instrução padrão no script de contrução do banco caso tenha que persistir informações inicialmente:

CREATE DATABASE db_name IF NOT EXISTS ;
CHARSET UTF-8 ;
Criado 30 de novembro de 2011
Ultima resposta 11 de dez. de 2011
Respostas 4
Participantes 3