MySQL – Convertendo Charsets

Quem desenvolve páginas web já deve ter passado por esse problema. Acentuação e caracteres ilegíveis no código.

Os famosos charsets é quem controlam quais caracteres podem ou não ser exibido no código.

Acontece do programador arrumar todo código nas páginas, mas quando salva no banco de dados, surpresa! Muda tudo de novo, códigos ilegíveis, parece um problema sem fim.

A boa notícia é que é possível controlar também no MySQL o tipo de charset a ser utilizado nas consultas.

mysql> SELECT CHARSET('abc');
-> 'latin1'
mysql> SELECT CHARSET(CONVERT('abc' USING utf8));
-> 'utf8'
mysql> SELECT CHARSET(USER());
-> 'utf8'

Usando a palavra CHARSET antes de definir a coluna, você obtém o tipo de charset que aquela coluna armazena seus dados.

Se estiver em um formato UTF8 e você gostaria que fosse LATIN1, basta fazer a conversão como mostrado acima, usado a função CONVERT( nome_da_coluna, USING tipo_charset).

Com isso é possível ler os dados da tabela e jogar na página os resultados sem se preocupar com a compatibilidade dos caracteres especiais (acentuações) do código.

Era isso, sucesso!



Sobre o Autor

MarioSAM é faixa preta 2Dan de Taekwondo. Entusiasta do marketing online. Especulador do mercado financeiro. Projetista web com certificação SCJP da SUN. Com 10 anos de experiência em desenvolvimento de sistemas.