Um dos problemas mais comuns com relação em site é o de caracteres que contém acentuação, se configurado incorretamente as configurações de COLLATION e SCHEMA, no momento de você inserir os dados no banco de dados, os caracteres com acentuação podem ser gravados da seguinte maneira:
Fábio
Note que no nome Fábio, o caracter á não foi gravado corretamente.
Um forma simples e prática de resolver o problema, é forçar o o mysql_connect resgatar ou gravar as informações na codificação UTF-8.
Para isso, basta usar o seguinte código:
mysql_set_charset('utf8',$conexao);
Veja um exemplo completo:
$banco = 'localhost'; $usuario = 'usuario'; $senha = '123456'; //ABRE A CONEXÃO $conexao = mysql_connect($banco,$usuario,$senha); mysql_set_charset('utf8',$conexao); //DAQUI PARA BAIXO, O RESTANTE DO CÓDIGO ....
Na maioria dos casos, usando mysql_set_charset(‘utf8’,$conexao) o problema é resolvido.
Importante!
Para esse exemplo as páginas estão configuradas com charset=”utf-8″
No Banco de Dados o SCHEMA E COLLATION está como latin 1 Default Collation
Cannot resolve the collation conflict between
Umas das formas de resolver esse problema:
1 – Descubra o Collation padrão do BD
Select ServerProperty('Collation')
Collation padrão é: COLLATE Latin1_General_CI_AS
2 – Na clausula WHERE, apos menção do campo, insira o COLLATION padrão, ex:
select colunaX, colunaY from tabela_01 t1 join tabela_02 t2 on t1.codigo = t2.codigo where t1.nome COLLATE Latin1_General_CI_AS = t2.nome COLLATE Latin1_General_CI_AS