HTML 5 e UTF8

No fim de semana passado, atualizei os servidores todos para as novas versões do Apache e do PHP. Essas atualizações causaram-me imensos problemas, nomeadamente por causa das funções de data/hora e por causa dos ficheiros codificados em iso-8859-1.

Atualmente, o PHP não confia nas definições de TIMEZONE do sistema (apesar de eu as configurar corretamente) e obriga a que todos os programas que façam uso de funções de data/hora definam previamente a zona de tempo:

date_default_timezone_set("Europe/Lisbon");

Por outro lado, foi necessário converter todos os ficheiros HTML e PHP, de ISO-8859-1 para UTF-8. Em alguns projetos antigos, tenho mais que 300 ficheiros e é impraticável alterá-los todos manualmente. Felizmente, em Linux é possível fazer essas conversões de uma só vez:

find . -name "*.php" -exec sh -c "iconv -f ISO-8859-1 -t UTF-8 {} > {}.utf8"  \; -exec mv "{}".utf8 "{}" \;

find . -name "*.html" -exec sh -c "iconv -f ISO-8859-1 -t UTF-8 {} > {}.utf8"  \; -exec mv "{}".utf8 "{}" \;

Um comentário em “HTML 5 e UTF8”

  1. O problema com o parâmetro timezone parece ter sido diferente. O ficheiro php.ini mudou de sítio – antes estava em /etc/httpd/php.ini, e agora passou para /etc/php.ini – e as configurações que eu tinha no antigo ficheiro deixaram de ser lidas.

    Editei o novo /etc/php.ini e coloquei a linha seguinte. É provável que isto baste.

    [Date]
    date.timezone = “Europe/Lisbon”

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *