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
Carregando comentários...