Ir para conteúdo

Arquivado

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

Hugo Borges_120734

Problemas ao salvar caracteres especiais no Mysql com php

Recommended Posts

Bom dia galera, por padrão eu trabalho com o ISO-8859-15. Em todos os meus arquivos eu declaro :

 

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15">

 

Sempre funcionou muito bem.

 

O problema e que mudei o servidor do meu sistema. E quando uso o seguinte comando:

$nome = "Teste ç ê í";
$idade = 25;

$acesso = $mysqli->query("INSERT INTO cadastro VALUES ('0','$nome', '$idade')");
   

Ele salva isso no Mysql:Teste ç ê í

 

Alguém pode me ajudar?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

deixa latim no DB, seu html deve ter um meta charset=utf-8 e se vc for fazer alguma transformação da string que tenha caracteres especiais vc repassa um segundo parametro forçando UTF-8

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi muito bem o que você falou. Mas todos os meus arquivos estando com meta iso-5589-15

 

 

no meu phpmyadmin esta assim :

  • Charset do servidor: UTF-8 Unicode (utf8)

 

Isso não teria que mudar para iso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

no localhost da certo na hospedagem não.

 

Uso o padrão iso pois e mais simples, consigo ler e gravar qualquer tipo de caracter sem ser trocado.

 

Porem com o projeto rodando em hospedagem, eu leio tudo certo, porem quando escrevo no BD acontece o erro.

 

A unida diferença e que o php do meu localhost e 5.6.9 e da hospedagem é 5.6.10

 

 

Não sei o que fazer

Compartilhar este post


Link para o post
Compartilhar em outros sites

Recentemente tive problemas com a acentuação no banco ( http://forum.imasters.com.br/topic/544044-problemas-de-acentuacao-php-mysql/ ). Para resolver coloquei todas as configurações para utf-8 ( html / php / mysql ), mesmo assim não funcionava, só resolveu depois que acrescentei duas linhas no arquivo de conexão com o mysql.

 

ini_set('default_charset', 'UTF-8'); //esta linha antes de criar a variavel conexao
$conexao->query("SET NAMES utf8"); // esta linha depois dela criada.

 

Desta forma consegui que funcionasse. Todos os meus amigos programadores me recomendaram que as configurações ficassem em utf-8.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique se todas as configurações estão para UTF-8 (eu utilizo utf-8 e não tenho problemas com ç ^ ~ ').

1-) No html verifique se o charset de sua página está como utf-8.

2-) No php, verifique se o php.ini na linha referente ao charsetestá como utf-8:
; PHP's default character set is set to UTF-8.
; http://php.net/default-charset
default_charset = "UTF-8"

Depois disto, verifique se ao salvar seu arquivo PHP, o charset está sendo salvo como utf-8 (isso depende da IDE de desenvolvimento).

3-) No MySQL, vc deverá logar e alterar o charset de sua database com o comando:
mysql-> ALTER DATABASE `bancodedados` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

 

Desta forma você irá garantir que tudo está em utf-8, e, acretido que seu problema irá resolver.

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.