O post Como configurar o charset de uma aplicação PHP ensina como configurar o padrão de caracteres para sites que utilizam a linguagem PHP e para banco de dados.
O que é charset?
Charset, Character Set, é o conjunto de caracteres que são utilizados para criação de documentos, bancos de dados, sites etc. Cada charset possui uma lista de caracteres disponíveis, sendo estes representados por uma posição de referência.
Confira alguns caracteres disponíveis no charset ASCII.
Posição | Caractere |
---|---|
65 | A |
66 | B |
67 | C |
68 | D |
69 | E |
70 | F |
Qual é a importância do charset?
O charset de um documento indica ao browser qual codificação foi utilizada, possibilitando que o documento seja interpretado, exibindo suas informações corretamente ao usuário. Caso exista algum tipo de incompatibilidade entre o conteúdo, o charset declarado e o charset utilizado para salvar o documento no seu editor – como Eclipse -, isso poderá comprometer sua exibição, gerando possíveis problemas, como erro na codificação do documento ou caracteres incorretos sendo exibidos na aplicação.
Configurando charset de uma aplicação PHP
Existem 127 charsets disponíveis para uso na Internet, e os mais utilizados são ISO-8859-1 e UTF-8. Se você está desenvolvendo algum conteúdo, terá que decidir qual codificação irá utilizar. O charset UTF-8 é uma recomendação, pois cobre quase todos os caracteres e símbolos do mundo.
Confira os passos recomendados para configurar o charset de sua aplicação.
Recomendações para configurar o navegador
Script PHP
Informar o charset na declaração dos formulários, caso exista.Informar o charset no início do script, junto ao tipo do conteúdo, nesse caso html.
<?php header("Content-type: text/html; charset=utf-8"); ?>
Metatag HTML
Informar o charset através da metatag no cabeçalho do código html.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Formulário
<form accept-charset="utf-8" ...>
Recomendações para configurar o banco de dados
Verificar se as tabelas e os campos de caracteres estão configurados para utilizar coleção utf8_general_ci, além de informar o charset ao abrir conexão com banco de dados.
Conexão MySQL
mysql_set_charset('utf8');
Conexão PDO
$handle = new PDO("mysql:host=localhost;dbname=dbname",
'username', 'password',
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
Conexão ZF2
return array(
'db' => array(
'driver' => 'Pdo',
'dsn' => 'mysql:dbname=dbname;host=localhost',
'driver_options' => array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"),
),
);
Informar o charset através da função mysql_set_charset.
1 | mysql_set_charset('utf8'); |
Referência(s)
Super dicas
Se inscreva em nosso canal e compartilhe as matérias que gostar com os seus colegas.
Participe dos nossos grupos de estudos do Facebook e Telegram.
Aproveite também e venha fazer parte do nosso clube de vantagens e ter acesso exclusivo a vídeos, tutoriais, cursos e muito mais.
Clique no link para se tornar um membro do dfilitto – clube de vantagens e ter acesso a todos os benefícios do nosso clube.