Corrigir charset em páginas PHP

charsetHoje vou passar 4 dicas simples de como corrigir charset em página PHP,  esse problema geralmente faz muito programador iniciante perder o sono quando surge um carácter maluco no seu menu, botão, conteúdo e etc., em páginas do seu site ou de um cliente.
 
Estamos falando em codificação de caracteres em páginas WEB o famoso charset, mais precisamente em páginas PHP.

 

Definição de Charset

“Conjunto de caracteres (character set), é comumente referênciado apenas como charset. Os charsets foram feitos como uma biblioteca de caracteres que podemos utilizar, para serem utilizados com propósitos gerais em computadores, softwares, browsers etc … 
Os charsets mais conhecidos são os da série ISO-8859 e os da família Unicode (UTF-8, UTF-16  e UTF-32).”
Fonte: http://revolucao.etc.br/archives/charsets-e-encodings/

Nos últimos anos já se tornou uma realidade o uso frequente do charset UTF-8 em várias páginas WEB, o próprio google já alertava sobre essa crescente  nesse artigo que foi publicado em 2008, ou seja, 6 anos atrás. Mas ainda é possível encontrar profissionais utilizando charsets da família ISO-8859, mas vale lembrar que o suporte a várias línguas e milhares de caracteres torna o uso do UTF-8 em páginas WEB, XMLs, Bancos de dados e etc., a melhor prática nos dias de hoje.

 

4 Dicas de como corrigir Charset

 
1 – Uma página de login simples, mas contendo carácteres estranhos o que acaba deixando sua página com uma aparência meio amadora, mas vem a pergunta “O que houve, está tudo digitado certo?
 
RESPOSTA: Falta informar o charset da página na TAG meta, passando o valor ‘utf-8’.

Atualização Agosto / 2015: HTML 5 passou a ser recomendação oficial pela W3C então a meta para informar o charset agora segue o padrão abaixo:

 

Post relacionado:  DSN PDO - diversos bancos de dados | Dica

2 – Conteúdo de páginas impressos direto do PHP sem relação com banco de dados, geralmente em includes com o comando echo ou  print():

 
RESPOSTA: Informar o charset no script PHP usando header();

 
 
3 – Esse terceiro é uma dica para consolidar os 2 exemplos anteriores, é interessante também setar na conexão com o banco de dados o charset UTF-8. Esse erro talvez seja o mais complicado de se achar, porque existem casos em que mesmo setando o charset correto para a conexão o programador esquece que o banco de dados também tem que ser construído com UTF-8.
 

RESPOSTA: Estou demonstrando a solução para esse tipo de problema usando como exemplo uma conexão em PDO mas com a extensão mysqli_ também é possível setar essa configuração. Observem que para o banco de dados MySQL seto no momento da conexão um comando “SET NAMES UTF8” e passo a array $opcoes no momento da instanciação do objeto, essa prática já basta para reforçar que essa conexão vai trafegar dados com esse charset.

 

4 – Verifique o encoding que seu editor de texto ou IDE está gravando os scripts, nesse exemplo estou usando o sublime para gravar como UTF8, mas praticamente todos editores e IDEs possuem essa configuração.

Encoding Sublime Text

 

Bom pessoal é isso, espero que essas dicas ajudem o leitor na “batalha” diária contra os erros de charset.

Post relacionado:  Preparação para Certificação PHP 5.5

Até a próxima ….

Tags:
Show Buttons
Hide Buttons