Ir para conteúdo

POWERED BY:

Arquivado

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

Kesley_Rennan

Problema de acentuação ao utilizar console para insert

Recommended Posts

Boa tarde, este é meu primeiro post no fórum, então me desculpem se eu não conseguir me expressar da maneira correta.

 

Vamos ao meu problema:

 

 

Criei uma base de dados no MySQL e dois sites que interagem com está base. Um dos sites faz apenas consulta na BD, enquanto o outro é como um sistema de gerenciamento, que uso para incluir dados.

Percebi que se realizo INSERTS utilizando algum console, como Workbench ou Phpmyadmin ocorre um problema de acentuação nas palavras quando exibidas nos meus sites.

Porém quando os INSERTS acontecem via aplicação (php) os dados não apresentam este problema na hora da exibição.

 

Já configurei minhas aplicações todas como UTF8 e no banco utilizei o seguinte código:

 

ALTER DATABASE `techday` CHARSET = UTF8 COLLATE = utf8_unicode_ci;

 

mas mesmo assim o problema persiste. Poderia ser algum problema de configuração do servidor Mysql??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kesley,

Só faz um teste novamente antes de eu te dar uma resposta (que talvez nem seja definitiva).

Pega os valores (iguais) e insere via workbench e php ou terminal. Faz o mesmo teste pra todos os âmbitos e veja se o dado exibido é o mesmo ou permanece alterado em um deles. Se permanecer alterado, ai me vem a dúvida...

Quando você insere via PhpMyAdmin ou qualquer outra plataforma, ele é inserido da mesma forma que o PHP, já que o comando é o mesmo e essas plataformas são SGBD, então é só pra facilitar e jogar o banco como algo visual e paupável.

Veja dentro do banco também se as informações iguais que inseriu possuem alguma alteração (excluso ID), não só olhe por cima, mas pegue o comando/linha de código de todos os inserts que deu.

Esse problema pode estar relacionado a:

  • Seu banco de dados e como as informações foram inseridas;
  • Ao HTML/PHP que está exibindo o comando;
  • Esqueceu de algo na hora de inserir hahahahahaha.

Bom, faça esses testes e retorne aqui pra eu tentar ajudar novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite L. Henrique, primeiramente gostaria de agradecer a atenção em me responder:

 

Como teste fiz o mesmo Insert, de quatro maneiras, sendo via Phpmyadmin, workbench, Cmd e Aplicação PHP.

Cheguei nos seguintes resultados:

 

Somente o insert feito via PHP que é exibido de forma correta no site, no entanto também é o único exibido de forma errada no MySQL.

 

Meu banco de dados usa charset UTF8

 

ALTER DATABASE `techday` CHARSET = UTF8 COLLATE = utf8_unicode_ci;

 

e minhas páginas estão configuradas para UTF8

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

.

print01.PNG

 

 

print02.PNG

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kesley,

Nunca me deparei com esse tipo de problema, então fiquei meio perdido agora tentando te ajudar, mas vou continuar tentando.

Achei dois tópicos que talvez seja de grande valia:

Considerando que o utf8_unicode é mais preciso do que o utf8_general, ele vai pegar os caracteres que o PHP inseriu, ler e mostrar o real caractere (o unicode é o melhor pra qualquer projeto), mas parece que em algum lugar na hora de adicionar ele está indo numa outra linguagem. Realmente o DEFAULT CHARSET de todo o database é utf8_unicode_ci? Tente também usar o SET CHARACTER SET utf8.

Os tópicos que inseri ali acima retratam o PHP e outras coisas como o ISO, mas deve valer pra qualquer plataforma que você deseja utilizar pra adicionar informações.

Se essas coisas não te ajudarem, tentarei novamente.

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara muito obrigado pela ajuda, refiz todos os caminhos por onde transitavam dados na minha aplicação (php/html/MySQL), e a única coisa que encontrei de diferente foi a forma de realizar conexão.
após corrigir, apenas recriei o banco e deu tudo certo

header('Content-Type: text/html; charset=utf-8');		
ini_set('default_charset', 'UTF-8');
$con=mysqli_connect("127.0.0.1", "root","","techday");
$resultados=mysqli_query($con,"select * from techday");	
$con->query("SET NAMES utf8"); 

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.