Acentuação PHP/MySQL/xHTML com utf-8
Fala, galera. Bom, eis que uma de minhas buscas chega ao fim. Eu (e meio mundo de gente) sempre tive problemas com acentuação dos dados que vinham do banco de dados, “casando” com o PHP e o xhtml. Pois bem, eu sempre quis usar o UTF-8 mas esse problema sempre me impedia. Então eis que encontrei o que procurava. Veja mais abaixo
Andando por aí, esbarrei no htmlstaff.org e finalmente encontrei a resposta. Sinceramente não era tão dificil quanto eu achava.
Vejamos:
Primeiramente, crie o seu banco de dados com COLLATE utf8_general_ci ou utf8_unicode_ci. Você poderá usar o seguinte exemplo:
CREATE DATABASE `bancodedados` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Se seu banco já existir, altere usando:
ALTER DATABASE `bancodedados` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
No seu script php de conexão com o banco:
header(‘Content-Type: text/html; charset=utf-8’);
mysql_pconnect($this->_host, $this->_user, $this->_senha);
mysql_select_db($this->_bd);
mysql_query(“SET NAMES ‘utf8′”);
mysql_query(‘SET character_set_connection=utf8’);
mysql_query(‘SET character_set_client=utf8’);
mysql_query(‘SET character_set_results=utf8’);
Resumindo:
mudo o charset pra utf-8
conecto no banco
seleciono o banco
comandos do mysql pra setar o charset
Não se esqueçam do xhtml, mudando o meta como abaixo: