Je rencontrais un problème avec mon serveur apache2 et php4 en utilisant
spip.
Le problème était lié à un squelette biospip qui crée une page html
simplifiée pour permettre l’impression correcte d’un document.
Or, si l’article mis en forme par spip était correct, le document
simplifié ressortait sans les accents et avec des codes zarbis à la
place.
J’ai déjà rencontré ceci sur le serveur de linuxtarn lui aussi avec
apache et je n’avais pas trouvé la solution.
Dans le cas donné ci dessus, voici la solution :
Se logger en tant que root, éditer le fichier /etc/php4/apache2/php.ini
Ajouter la ligne ( ou plutôt la dé-commenter )
default_charset = "iso-8859-1"
enregistrer le fichier et relancer apache ( /etc/init.d/apache2
restart )
Depuis cette modif, les documents sortent niquel.
Pour info, voici le post d’un forum qui m’a aidé.
"il ne faut pas confondre l'encodage utilisé par l'interface de
phpMyAdmin avec l'encodage des caractères contenus dans ta base. Ca
n'est pas le problème. Je suis quasiment certain que ton problème vient
de la configuration par défaut de ton hébergeur, dont le serveur envoie
un en-tête ISO8859 (facile à tester avec l'extension webdevelopper de
Firefox), celui-ci prédomine sur l'en-tête contenu dans ta page hmtl (la
ligne pour être encore plus précis).
D'où ton problème. Si ton hébergeur le permet, il faut un
fichier .htaccess spécifique et aussi éditer php.ini
Dans .htaccess ajouter
AddDefaultCharset utf-8
Dans php.ini
default_charset = "UTF-8"
Et normalement, ça devrait marcher :-)"