mercredi 5 septembre 2007

Pb encoding d'une page Web

Je viens d'être confronté à un petit souci d'encoding avec Firefox.
Pour résoudre mon petit souci, j'ai été obligé de "sniffer" le réseau avec wireshark ...

Voici quels étaient les symptômes.Mon application web me fournit une page HTML avec la balise suivante :
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
Jusque là, tout est normal. Ma page comprend la balise qui va bien pour indiquer au navigateur qu'il faut s'attendre à avoir du contenu ISO-8859-1.

Mais voilà, l'algorithme de Firefox trouvait un encodage UTF-8. Tous les accents de la page et autres caractères spéciaux se font la malle :((

Une capture d'une requête HTTP réseau m'a permis de voir que la requête renvoyée par le serveur contenait un en-tête ayant une incidence significative ;-) pour mon problème :
Content-Type: text/html; charset=UTF-8
Effectivement, en vérifiant la configuration de mon serveur HTTP apache, je m'aperçois que l'encoding par défaut a été défini à UTF-8 à l'aide de la directive :
AddDefaultCharset UTF-8
Sur mon serveur Ubuntu, cela se trouve dans le fichier /etc/apache2/conf.d/charset
Pour résoudre mon problème, je n'ai eu qu'à mettre cette balise en commentaire. De cette manière, la gestion de l'encoding est déléguée à l'application.

Aucun commentaire: