Problema de charset em servidores Apache + PHP


Se você é desenvolvedor Web e trabalha com PHP sabe que a maioria esmagadora de seus trabalhos roda sob uma plataforma Linux + Apache + PHP e também já deve ter passado por uma solução no mínimo estranha, você tem a sua página com a Tag Meta que define o charset devidamente escrita, contudo por mais que você defina no seu cabeçalho a Tag Meta a sua página teima em ser exibida no browser com um charset diferente, tornando a exibição de caracteres especiais algo pitoresco.

Um exemplo prático, imagine uma página com a seguinte Tag Meta:

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

E por mais que a Tag Meta esteja devidamente escrita o browser teima em exibir a página como UTF-8, lamento dizer que a sua página Web está certa, porém o seu servidor não. Para corrigir isso é fácil, basta seguir os passos abaixo.

Abra no terminal o seguinte arquivo do Apache:

/etc/apache2/conf.d/charset

Agora verifique se constam as linhas:

AddDefaultCharset UTF-8
AddDefaultCharset ISO-8859-1

Se você estiver tendo o problema de charset mencionado acima é provavel que esteja faltando a linha do UTF-8 ou ISO-8859-1, basta adiciona-la, reiniciar o seu Apache (se estiver utilizando o Squid no servidor este deve ser reiniciado também) e os seus problemas terão acabado.

Petter Rafael

Desenvolvedor Web atua com as tecnologias Java e PHP apoiadas pelos bancos de dados Oracle e MySQL. Além dos ambientes de desenvolvimento acima possuiu amplo conhecimento em servidores Apache/Tomcat, Photoshop, Arte & Foto, Flash e mais uma dezena de ferramentas e tecnologias emergentes. Atualmente colabora com o Viablog escrevendo sobre programação e tecnologia.