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