Ir para conteúdo

POWERED BY:

Arquivado

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

Rodrigo Twister

Insert com problema de acentuação

Recommended Posts

Estou desenvolvendo um site pra um cliente que tem hospedagem no Terra Empresas. Lá eu não estou podendo mecher em muitas coisas, principalmente no charset do banco.

 

Conclusão, ao inserir um conteúdo no banco através do meu código php, o mesmo sai com erro de acentuação. Vou explicar melhor:

 

Se eu chegar diretamente no banco de dados, clicar em INSERIR e digitar uma palavra com acento, a mesma fica certinha, mas se através do meu código, inserir, dá erro do tipo:

 

Se eu digitar HIDROGINÁSTICA, sai Hidroginástica e ele grava da maneira errada no banco.

 

Eu sempre usei o insert da mesma maneira em todos os sites que eu desenvolvi e todos funcionam perfeitamente, só no Terra Empresas que dá esse bug escroto.

 

Meu código pra inserir:

 

<?	$titulo=$HTTP_POST_VARS['titulo'];	$texto=$HTTP_POST_VARS['texto'];	$texto = str_replace(chr(10),"",str_replace(chr(13),"<br>",$texto));		$cod_atividade=$HTTP_GET_VARS['cod_atividade'];	$tipo=$HTTP_GET_VARS['tipo'];		include("conexao.php");		if($tipo==1)	{		$sql=mysql_query("insert into atividades (titulo,texto) values ('$titulo','$texto')");		header("Location: atividades.php");	}?>

Alguém saberia me dizer como posso consertar isso através de código php, sendo este para exibir ou para cadastrar ? Ainda não inclui nenhum conteúdo oficial no site, então, fiquem tranquilos quanto a apagar tudo que já botei como teste.

 

Sou meio leigo em php, então, o mais claro possível, se não for pedir muito, rss

 

De ante-mão, obrigado a todos pela colaboração.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rodrigo, é porque o banco está configurado para utf8, para gravar a informação no bd correta você pode usar o utf8_encode

 

Link

 

e quando for receber texto do bd, você pode usar o inverso, utf8_decode

 

Link

 

Ou então você pode usar a configuração do headers de suas páginas para utf8, mas acredito ser mais viável usar as funções passadas, vlw.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe, sou meio leigo no assunto. Eu de cara já matei que o problema era este, mas o Terra Empresas é fogo, bloqueou tudo e não tenho como alterar o Charset das tabelas criadas. Além disso, eu não consigo através de comando sql saber qual linguagem está lá.Como ficaria no meu código acima para quando inserir o conteúdo, entrar como utf8 ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ve se você consegue usar este comando do PHP. para resolver,

 

header("Content-type: text/html; charset=ISO-8859-1");

Ai no caso está para ISO.....você altera da maneira que desejar.

 

Espero ter te ajudado

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe, sou meio leigo no assunto. Eu de cara já matei que o problema era este, mas o Terra Empresas é fogo, bloqueou tudo e não tenho como alterar o Charset das tabelas criadas. Além disso, eu não consigo através de comando sql saber qual linguagem está lá.

 

Como ficaria no meu código acima para quando inserir o conteúdo, entrar como utf8 ?

Use assim:

 

vamos supor que sua variável que será incluída no bd seja $nome, no seu insert onde você coloca esta variável coloque assim:

 

utf8_encode($nome)

 

agora quando for resgatar a variável do bd, e for mostrála na tela use assim:

 

echo(utf8_decode($nome));

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ve se você consegue usar este comando do PHP. para resolver,

header("Content-type: text/html; charset=ISO-8859-1");
Ai no caso está para ISO.....você altera da maneira que desejar.Espero ter te ajudadoAbraços
É rapaz, ele tá gravando errado no banco, mas tá exibindo correto agora, pois mudei para utf-8. Chato é ter que mudar em TODOS os arquivos né ?Mas beleza, se não achar outra maneira, vai ser assim mesmo.Valeu e abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ve se você consegue usar este comando do PHP. para resolver,

header("Content-type: text/html; charset=ISO-8859-1");
Ai no caso está para ISO.....você altera da maneira que desejar.Espero ter te ajudadoAbraços
É rapaz, ele tá gravando errado no banco, mas tá exibindo correto agora, pois mudei para utf-8. Chato é ter que mudar em TODOS os arquivos né ?Mas beleza, se não achar outra maneira, vai ser assim mesmo.Valeu e abraços
Por isto aconselhei você a usar as funções passadas, pois se for pra mudar pra utf8, vai ter que mudar todas as suas páginas, e os textos fixos os quais você usou formatação normal, por exemplo escreveu algo com acento terá de alterar também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ve se você consegue usar este comando do PHP. para resolver,

header("Content-type: text/html; charset=ISO-8859-1");
Ai no caso está para ISO.....você altera da maneira que desejar.Espero ter te ajudadoAbraços
É rapaz, ele tá gravando errado no banco, mas tá exibindo correto agora, pois mudei para utf-8. Chato é ter que mudar em TODOS os arquivos né ?Mas beleza, se não achar outra maneira, vai ser assim mesmo.Valeu e abraços
Por isto aconselhei você a usar as funções passadas, pois se for pra mudar pra utf8, vai ter que mudar todas as suas páginas, e os textos fixos os quais você usou formatação normal, por exemplo escreveu algo com acento terá de alterar também.
Pois é, mas não entendi bem como implementar aquelas funções no meu código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posta um trcho do cod onde você insere dados no BD e um trecho onde você mostra estes dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

no arquivo de conexão com o banco defina

 

mysql_query("SET NAMES 'utf8'");

 

 

 

abs

 

 

 

www.linknacional.com.br

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como o topico não tava fechado ainda, e eu estava com o mesmo problema de acentuação no banco de dados

achei uma maneira simples para resolver setando o banco com mysqli_set_charset

Abaixo o exemplo

 

mysqli_set_charset($link,'utf8');
mysqli_query($link,$query) or die('Não foi possivel fazer a query');

Link para a documentação em php Clique aqui

Link da lista de chasert que o MYSQLI aceita Clique aqui

 

^_^

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.