Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Salve tripulação do iMasters,
Estou com uma dúvida que me parece boba mas que já tentei diversas soluções e não consigo solucioná-la.
- Tenho uma página .php (html5) cujo charset é utf-8;
- Tenho um banco de dados chamado sistema, seu collation utf8_general_ci;
- Dentro deste banco tenho várias tabelas, todas com collation utf8_general_ci;
Os problemas são o seguinte:
Quando faço um INSERT pelo phpMyAdmin, no próprio phpMyAdmin eu consigo visualizar os registros corretamente, com acentos, porém quando trago-os para php por meio de uma consulta, os acentos são substituídos por �.
Quando faço um INSERT pelo PHP, no phpMyAdmin eu não consigo visualizar os acentos, porém quando trago-os para o PHP os acentos são exibidos perfeitamente.
Tá, aí alguns podem dizer: Se inserindo pelo PHP e trazendo pelo PHP está dando certo, faça tudo pelo PHP. O maior dos problemas não é esse... O maior dos problemas é que visualizando pelo phpMyAdmin, os caracteres que possuem acento, são substituídos por dois caracteres.
Quer um exemplo?
Inserindo: Cícero Espártaco Martins
Resultado: CÃcero Espártaco Martins
Ou seja, se possuo um campo VARCHAR(24), inserir CÍCERO ESPÁRTACO MARTINS daria problema, pois seria inserido apenas CÍCERO ESPÁRTACO MARTIN, pois o "á" do ESPÁRTACO, se tornou "á" (dois caracteres).
Gostaria de saber como resolvo este problema sem ter que ficar usando utf8_encode e utf8_decode em todas as variáveis, se não estou lascado!
Verifiquei que uma possibilidade é utilizar SET NAMES utf8. Mas pergunto, é correto fazer isso ou teria alguma outra forma de resolver o problema sem utilizar o SET NAMES?
Desde já meu muito obrigado à todos!
Atenciosamente,
Cícero Martins
Certo, vamos la... Há varios problemas possíveis ai.
Questões:
1) A página que faz consulta está sendo chamada por include?
2) Se a primeira for sim:
a- Na página que chama (tipo index.php) está setado o charset UTF-8?
b- Na página de consulta está está setado o charset UTF-8?
3) Se está setado o charset, independente da resposta da 2, como está escrito o código?
Se possível, é sempre recomendado, poste ai o código fonte.
mano no ultimo caso. faça o seguinte coloca seu code no bloco de notas e salva como nomedoarquivo.php codificação utf-8
se fica a mesma coisa tenta bota um header na pagina assim
header('Content-Type: text/html; charset=utf-8');
espero ajuda abrç
Ai kbeça não sei se você resolveu mas a solução eh a seguinte, como você fez todo o banco tem de estar em utf8.
Dai na pagina de conexão você coloca o seguinte:
E todas as paginas tem q ter no cabeçalho:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Corre pro abraço!