
Uma pergunta que aparece regularmente no fórum do CCM Brasil é Como fazer para que os acentos sejam exibidos corretamente em minhas páginas? Nesse artigo, mostramos a solução para esse problema com a ajuda do UTF-8 para que os sinais de pontuação parem de ser uma dor de cabeça para você.
Os arquivos PHP e HTML do seu site devem ser codificados em UTF-8, de preferência sem BOM. Para isso, você pode usar seu editor de texto favorito (ou o seu IDE).
Em PDO (PHP Data Objects), por exemplo, você pode especificar a codificação durante a conexão adicionando o charset (codificação de caracteres):
try{
$bdd =new PDO('mysql:host=localhost;
dbname=mabdd; charset=utf8', 'user', 'password');
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
} catch(PDOException $e) {
die('Erro: ' . $e->getMessage());
}
Em Mysqli, vamos utilizar a instrução:
//Estilo orientado ao objeto
$link->set_charset("utf8")
//Estilo processual
mysqli_set_charset($link, "utf8")
Onde $link representa a conexão.
Essa declaração é feita no cabeçalho das suas páginas. Em HTML, na marca HEAD você pode usar, por exemplo:
meta http-equiv="Content-Type" content=\"text/html; charset=UTF-8\"
ou (em HTML5)
meta charset="UTF-8"
Em PHP você pode usar a instrução:
header( 'content-type: text/html; charset=utf-8' );
De modo geral, em um BDD MySQL (banco de dados) usamos a codificação utf8-general-ci ou utf8_unicode_ci.
Observação: se você já fez inserções no BDD, verifique se os caracteres acentuados aparecem corretamente em suas tabelas.
Não se esqueça de remover todas as instruções Utf8_encode / Utf8_decode que você pode ter colocado em seus scripts.
Foto: © Unsplash