Ir para conteúdo

POWERED BY:

Arquivado

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

Marcos Ricardo

Problema de acentuação com o Mysql

Recommended Posts

Bem, não consigo recuperar os dados do bd mysql com os acentos. No no console do MSDOS, acesso os dados com acento, mas na página não aparece, fica assim:

 

café: caf�

 

Só pra constar, na página já tem <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> no início...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual o cherset do banco? É utf-8 também?

 

Tive problemas parecidos quando comecei a usar utf-8. Resolvi usando essas duas funções

//define o charset do PHP
ini_set('default_charset','UTF-8');
//define o charset para uma conexao com o banco
mysql_set_charset('utf8', $conexao);
Lembrando que os arquivos devem ser salvos em utf-8 também.

 

Flw.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual o cherset do banco? É utf-8 também?

 

Tive problemas parecidos quando comecei a usar utf-8. Resolvi usando essas duas funções

//define o charset do PHP
ini_set('default_charset','UTF-8');
//define o charset para uma conexao com o banco
mysql_set_charset('utf8', $conexao);
Lembrando que os arquivos devem ser salvos em utf-8 também.

 

Flw.

 

Acredito que o charset do PHP estar certo por os acentos dos demais textos funcionam, só não funciona mesmo os textos recuperando do banco de dados, e ficou do mesmo jeito...

Mas quando modifiquei o o charset para uma conexao com o banco, ficou assim:

 

Café = Caf,

 

No lugar do "é" ficou uma "," (vírgular)...

Compartilhar este post


Link para o post
Compartilhar em outros sites

já tentou recuperar o valor com utf8_decode() ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olhei o artigo PHP MySQL e UTF-8, e tentei usar a função utf8_encode(), mas o resultado é sempre o mesmo, aparece caracteres estranhos, quando não uso ele só aparece interrogações.

 

Crie um banco de dado com o seguinte sql:

 

CREATE DATABASE nomedobd CHARACTER SET utf8

 

Olhei depois no Mysql Administrator e os campos criados são charset utf8 e collate utf8_general_ci. Fiz uma conexão com o banco e usei a função mysql_client_encoding() para identificar o charset da conexão com o MySQL, o resultado foi latin1, ou seja mesmo o banco de dados sendo utf8, a conexão era latin1. Nesse ponto os acentos eram substituídos por interrogação.

Use então essa função a mysql_set_charset('utf8') para definir charset da conexão como sendo utf8, depois disso apareceram o velhos caracteres estranhos...

 

Outra coisa que percebi...

Fiz o backup do banco de dados, e no arquivo sql os valores dos campos estavam com os acentos com substituído por caracteres estranhos também. Poderia o problema está na inclusão da tabela? ou seja, acentos já seriam substituído na entrada de dados. Fiz a inclusão na tabela pelo console do msdos, mas consigo visualizar os acentos normalmente no próprio dos, vou fazer um formlário, e enviar os dados com uma conexão utf8 para teste...

 

Obrigadao a todos...

Compartilhar este post


Link para o post
Compartilhar em outros sites

como está utilizando a encode??

 

cole um pedaço do script onde contenha o uso da função

 

utf8_decode($var);

Conseguir resolver...

 

Usei os seguintes comando sql:

 

CREATE DATABASE mabase CHARACTER SET utf8
ALTER DATABASE mabase CHARACTER SET utf8

Onde pode-se criar ou alterar um banco de dados para utf8. No caso de alteração os dados que foram inseridos não são corrigidos, eles continuam com os caracteres estranhos, mas os que são inseridos a partir de então ficam normais...

Não alterei nada no código, o código ficou normal, só alterei o banco de dados mesmo.Não sei se é a maneira correta, mas tá aí...

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.