Avançar para o conteúdo principal

Problemas de Acentuação em PHP e Mysql


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 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

Mensagens populares deste blogue

3 Formas de configurar o Wi-Fi no ESP8266

3 Formas de  configurar o Wi-Fi no ESP8266 O nosso famoso ESP8266 veio para ficar, cada vez mais este microcontrolador é utilizado para desenvolver dispositivos fantásticos, é verdade que o ESP pode ser utilizado como um simples MCU , mas é a sua capacidade de se ligar a uma rede Wi-Fi, faz dele a escolha perfeita no que toca dipositivos IoT . Este artigo tem foco em três diferentes soluções que permitem programar o ESP de forma a que este se consiga ligar a uma rede Wi-Fi. É sabido que da primeira vez que o ESP é energizado este tem de conhecer ou vir a conhecer o SSID e a Password configurada no Access Point ao qual o queremos conectar de forma a fazer para da rede e ter acesso à Internet se assim for necessário. Vamos então ver como implementar as três soluções, analisar cada uma delas e ponderar os prós e contras e cada uma delas. Passemos ao caso mais simples, ao qual denomino de “Hard Coded” , esta é a forma mais utilizada por quem começa a util...

Instalação do SQLPLUS da ORACLE em LINUX

Bom dia a todos Hoje vou explicar como podemos instalar o SQLPLUS da Oracle em sistemas Linux que utilizem gestão de pacotes RPM, entre eles CENTOS, FEDORA etc.. O SQLPLUS é uma excelente ferramenta de administração de SGDB da Oracle e apresenta-se sob o formato de linha de comandos o que permite aos Administradores de Base de Dados um maior poder sobre o SGDB. Antes de mais é necessário ter uma conta Oracle, esta pode ser feita atraves de um registo no site e é totalmente gratuito. Após termos conta devemos ir à secção de Download -> Databases -> Oracle Instant Client URL:   http://www.oracle.com/technetwork/indexes/downloads/index.html É apresentada uma lista sistemas operativos suportados e no nosso caso vamos escolher    Instant Client for Linux x86-64   para versões 64 Bits Ao escolhermos o Sistema Operativo a Oracle mostra-nos todas aplicações de Cliente para as diversas versões de Base de dados. A ultima versão é a 12 no entanto de...

CNC 2418 Autolevel PINS

Boas, se têm uma CNC 2418 então vão querer ter Autolevel :) Aqui ficam os pinos :) Thanks Nuno Miguel :)