Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Problemas de Codificação

Pessoal estou usando meu HTML charset utf-8 e no meu banco de dados está como utf-general-ci até ai tudo bem porém aquele mesmo problema eu gravo no banco apareçe aqueles caracteres estranhos porém quando faço a busca para retornar ao usuário está aparecendo normal . Me falaram que eu devia forçar o charset tambem na hora de enviar os dados para o banco , isso procede ?? Se for como deveria fazer isso tendo em vista o conteudo que estamos pegando agora de acordo com o conteudo do professor Guilherme .

Muito Obrigado !

9 respostas

Hugo, o arquivo do programa, em si, está gravado em que formato?

Qual editor de texto você usa para digitar os programas?

Eu imagino que o seu encoding do programa não esteja em utf-8.

Estou usando o Netbeans

Para evitar erros tanto no banco quanto no navegador, eu uso essa função ao para conectar ao Banco de Dados. Caso de erro de redirecionamento, ao usar require_once, remova a primeira linha do código.

header('Content-Type: text/html; charset=utf-8');
        $this->conexao = mysql_connect($this->servidor, $this->usuario, $this->senha, TRUE) or die();
        mysql_select_db($this->nomebanco) or die("erro");
        mysql_query("SET NAMES 'utf8'");
        mysql_query('SET character_set_connection=utf8');
        mysql_query('SET character_set_client=utf8');
        mysql_query('SET character_set_results=utf8');

Raí, antes eu fazia desta forma, mas acabou que não era necessário.

Hugo, você pode verificar se você está com o conteúdo do arquivo em utf-8?

Eu acho que você não está

Nas propriedades de meu projeto no Netbeans a codificação está em UTF-8

Como eu usuario essa função descrita acima de acordo com o conteudo que estamos vemos na aula , pois a minha pagina conecta tem somente uma linha assim . $conexao = mysqli_connect('localhost','root','',''nomeDoBanco'); Como eu implementaria isso ??

Hugo, você tem como alterar a collation da Tabela para utf8 - default collation??

E tentar novamente?

Quando voce fala a Collation voce está falando do banco de dados do phpmyadmin ? Quando entro o phpmyadmin a collation padrão está uft8-mb4 algo assim e não posso mudar para utf8-general ci pois quando faço ele retorna para esse que descrevi ai em cima .

Por enquanto sidnei estou tentando resolver algumas dúvidas do que estou fazendo agora , minha preocupação agora é mexer em algo e estragar tudo . Vou so terminar a lógica de algumas funções e vou partir para tentar modificiar novamente .

solução

Tá legal.

Também tou seguindo minhas trilhas, rs. Mas eu não falo do phpmyadmin, pois eu nem uso. eu falo da tabela mesmo.

apenas pra exemplificar, ao criar uma tabela, cria na mão apenas para teste. vai aqui um exemplo

CREATE TABLE `produtos` (
  `id` integer AUTO_INCREMENT,
  `nome` varchar(255) NOT NULL,
  `preco` decimal(10,0) NOT NULL,
  `descricao` longtext,
  `categoria_id` integer NOT NULL,
  `usado` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

Agora também sigo as minhas trilhas.

Desse jeito funcionou beleza sidnei para os problemas !!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software