Quantas vezes já nos aconteceu que ao gravar informação na base de dados Mysql os acentos das nossas queridas palavras Portuguesas ficam com caracteres estranhos!!!
Depois para tentar resolver andamos à luta com o charset do HTML do PHP e ainda temos o do MYSQL....
No entanto verificamos que já colocamos no <HEAD> do HTML o comando:
<meta http-equiv="content-type"content="text/html;charset=utf-8"/>
e não funciona. Continua a gravar com os malditos caracteres estranhos...
Depois tentamos indicar ao PHP o charset que queremos usar com o comando :>
<?php
header('Content-Type: text/html; charset=utf-8');
?>
Parece tudo perfeito mas continua sem aparecer a acentuação correta.
Próximo passo verificamos o Default Collation no Mysql, este deve estar também em UTF-8.
Após isto tudo devia funcionar tudo na perfeição certo???
No entanto se ainda não funcionar, podem usar mais uns truques!! Chamo-lhe truques porque se demos indicação em todos os sistemas que queremos usar codificação UTF-8 por defeito sem ter que recorrer a funções do php como utf8_decode() ou utf8_encode() pois isto seria demasiado oneroso, porque é que ainda não funciona....
Pois então se ainda não funcionar estes próximos comandos devem por tudo direitinho :)
Após o comando de ligação ao servidor e do de seleção da BD vamos então indicar ao servidor MYSQL o tipo de codificação que queremos usar na ligação entre Cliente / Servidor como também indicamos a codificação que queremos usar nos resultados das nossas consultas.
mysql_connect('IPSERVER', 'usernameDB', 'passwordDB');
mysql_select_db("BDname", $link);
//------------------------ Tratamento da codificação --------------------------------------------
mysql_query("SET NAMES 'utf8'");
mysql_query("SET NAMES 'utf8'");
mysql_query('SET character_set_connection=utf8'); // Indicação da codificação usada na ligação
mysql_query('SET character_set_client=utf8'); //Indicação da codificação que o cliente está a usar
mysql_query('SET character_set_results=utf8'); //Indicação da codificação de retorno das consultas à BD
Espero que isto vos tenha ajudado porque é horrível passar-mos horas a tentar resolver um problema tão simples que parece nunca mais ter fim.
Obrigado pela vossa leitura
Bruno Horta @ 2014
Comentários
Enviar um comentário