Erro mysql codificação caracteres banco

Erro mysql codificação caracteres banco

Olá pessoal

Semana dedicada ao Mysql. hehe


História

Fui passar um banco de dados Mysql que estava num servidor configuradinho e perfeito para o servidor local da empresa que trabalho.. Pensei.. É só Control + c e Control + v, não era pra dar erro.. Mas deu. Apareceu um erro de codificação dos caracteres do banco.

Problema

Erro: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE)


Ou seja, o meu banco de dados estava em Latin1, mas os meus arquivos estavam em Utf-8.
Eu tentei sem sucesso trocar a codificação:

Do banco para Latin1.

Das tabelas do banco.
Dos arquivos para Iso-8559-1.

Solução Simples ( não a perfeita, mas funciona )

Então meu amigo (e chefe) Anselmo confirmou meu achado de um comando Sql para ser setado na conexão ao banco e que define o tipo da codificação de caracteres dos dados que são retornados (ufa).

Ao efetuar a conexão ao banco de dados, use isto:

SET CHARACTER SET latin1

Fazendo isso, todos os dados virão em Latin1. E você não precisará se preocupar com perda de dados ( pelo menos no servidor de testes ).

Fontes:

blog comments powered by Disqus