Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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!

 

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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!

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.