Como um dos trabalhos da disciplina de Especificação e Requisitos de Software do curso, foi dado um sistema em PHP para que fossem aplicadas modificações (adicionar ordenamento e filtro à uma tabela, criar um cadastro, etc).
Não sei se o sistema já estava assim, ou se foi porque foi desenvolvido em outro SO, mas ele estava com problemas de codificação (caracteres acentuados). Olhando o banco de dados através do phpMyAdmin, o texto parecia normal, mas na hora de transformar em HTML, as letras acentuadas não apareciam. Vi que o BD estava em UTF-8, e tentei setar a codificação do HTML, sem sucesso.
Daí, encontrei um artigo que esclareceu toda a situação dos problemas de codificação, que vão desde o editor de texto até o próprio banco de dados. Recomnendo a leitura.
Resumindo: além de setar a codificação do HTML para UTF-8:
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
Eu tive que definir a codificação da conexão com o banco de dados no PHP:
mysql_set_charset('utf8', $link);
Onde $link é o resource retornado pela mysql_connect.
Nota: mencionei as funções mysql_*, porém elas estão deprecated, ou seja, não devem ser utilizadas, por diversos motivos. As soluções recomendadas são o conjunto mysqli_* (compatível com o conjunto anterior, porém com algumas modificações) ou então PDO (PHP Data Objects), mais complexo.
Nenhum comentário:
Postar um comentário