Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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?
Provavelmente a sua conexão com o BD esteja em utf8, altere para iso/latin e veja o que dá:
http://forum.imasters.com.br/topic/542200-banco-de-dados-nao-cadastra-caracteres-especiais/
tentei usar o seguinte código após a conexão :
$mysqli = @mysqli_connect($ip_bd_mysql, $login_bd_mysql, $senha_bd_mysql, $db);
mysqli_query($mysqli, "SET NAMES 'latin1'");
Mas não deu certo ñao.
Gera acho que o erro esta na criação do bd no phpmyadmin. Qual a opção correta para trabalhar com ISO-8859-15?
/applications/core/interface/imageproxy/imageproxy.php?img=http://s2.postimg.org/immncexpl/Captura_de_Tela_2015_12_09_s_11_11_57.png&key=115901082d3b1f1bd2a61a23b41f7ad84406153195dc35fd74275f85c3a09954" alt="Captura_de_Tela_2015_12_09_s_11_11_57.pn" />
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
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 :
Isso não teria que mudar para iso?
Usa UTF-8 que vc se incomoda menos, vc está rodando o projeto localhost ou hospedado?
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
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.
Desta forma deu certo, porem o problema de trabalhar com o uff-8 e que se eu escrever algo com ç, ´, ˜ . Aparece uns caracteres nada a ver. como posso revolver isso?
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.
vlw agora sim deu tudo certo
da uma olhada no mysql, tu colocou utf8_general_ci na criação do banco? tem que estar a mesma do projeto