Jump to content
Sign in to follow this  
Pedro Roccon

Erro de acentuação PHP/MySQL

Recommended Posts

Galera, primeiramente bom dia. Obrigado por se interessarem.

 

Bom, vamos lá. Tenho um problema no PHP. Os dados cadastrados no banco estão vindo um carácter estranho, tipo um losango preto com um ? (ponto de interrogação) dentro.

 

Antes de mais nada, meu documento em PHP está como UTF-8:

<meta charset="UTF-8" />

Meu banco de dados está com a Collation (Agrupamento) = utf8_general_ci

Minhas tabelas do banco estão com Collation (Agrupamento) = utf8_general_ci

Os campos da minha tabela que permitem textos estão com Collation (Agrupamento) = utf8_general_ci

 

Estou utilizando o EasyPHP como servidor web. As configurações são as padrões, não alterei nada. Se precisar eu colo aqui o arquivo.

 

Mesmo assim, quando insiro algo no banco de dados que tem algum acento, ele me volta um ? com um losango preto em volta.

 

Atenção: Não quero utilizar uft8_encode/utf8_decode, pois considero isso "gambiarra". Somente em último caso.

 

Agradeço desde já a todos que ajudarem,

Muito obrigado!

 

Share this post


Link to post
Share on other sites

A sua conexão com o banco deve está também em UTF-8, eu demorei muito pra descobrir esse erro tbm.

mysql_connect('SERVIDOR', 'USUARIO', 'SENHA');
mysql_select_db('BANCO');

mysql_set_charset('utf8'); <- Isso faz a mágica.

Ai os registros que você colocar vão entrar em codificação normal, com acentos, todos certos e quando você retornar esses dados na sua página, vai ficar tudo certo tbm.

  • +1 1

Share this post


Link to post
Share on other sites

A sua conexão com o banco deve está também em UTF-8, eu demorei muito pra descobrir esse erro tbm.

mysql_connect('SERVIDOR', 'USUARIO', 'SENHA');
mysql_select_db('BANCO');

mysql_set_charset('utf8'); <- Isso faz a mágica.

Ai os registros que você colocar vão entrar em codificação normal, com acentos, todos certos e quando você retornar esses dados na sua página, vai ficar tudo certo tbm.

 

Valeu Dian Carlos, isso funcionou perfeitamente. Muito obrigado mesmo pela dica.

Só para deixar registrado, como estou utilizando PDO, minha string ficou da seguinte forma:

 

$pdo = new PDO('mysql:host='.$db_host.';dbname='.$db_name.';charset=utf8', $db_user, $db_pass);

Valeu, muito obrigado mesmo!

Share this post


Link to post
Share on other sites

A sua conexão com o banco deve está também em UTF-8, eu demorei muito pra descobrir esse erro tbm.

mysql_connect('SERVIDOR', 'USUARIO', 'SENHA');
mysql_select_db('BANCO');

mysql_set_charset('utf8'); <- Isso faz a mágica.

Ai os registros que você colocar vão entrar em codificação normal, com acentos, todos certos e quando você retornar esses dados na sua página, vai ficar tudo certo tbm.

 

Cara... eu não tinha uma conta nesse site/fórum, criei apenas pra te dar Obrigado, procurei a internet INTEIRA ( exagerado ) e nada... até achar sua dica, valeu mesmo cara.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.