Bonjour,

j'ai un problème d'encodage avec notepad++.

Tout d'abord, lorsque que je change juste le format (je le passe en ANSI sans BOM), j'ai l'impression qu'il ne sauvegarde pas vraiment le fichier si je ne change pas quelque chose à l'intérieur, est ce normal?

Ensuite, sur mon site j'ai toujours le problème des accents qui déraillent.. Tout le site est en UTF-8 mais quand je me rends sur la page avec mes nouveaux fichiers (que j'ai passé en UTF-8 pourtant..), j'ai des é à la place des accents.

Si je n'inclus pas le dit fichier, pas de problème, si je l'inclus.. ca ne marche plus.
Il est pourtant en UTF-8 (d'après notepad++)

Je deviens fous... Smiley biggol

Merci pour votre aide !
Bonjour,

Tu as bien lu [Pré-requis] Notions de base sur l'encodage des caractères et les informations qui y sont liées? Car tu ne dis rien de la manière dont est déclaré l'encodage de ta page. As-tu vérifié que ton navigateur affichait bien la page en utilisant l'encodage UTF-8? (Dans Firefox: «Affichage > Encodage des caractères > ...».) Si ce n'est pas le cas, c'est que l'encodage est mal déclaré.

Pour Notepad++, pour ma part je le trouve mauvais (car peu clair, surtout) dans la gestion des encodages. Sauf erreur grossière de ma part, la terminologie qu'il utilise (ANSI sans BOM...) est un bel exemple de n'importe quoi qui personnellement ne m'inspire pas confiance. Pour ma part j'utilise Komodo Edit, qui gère très bien l'encodage des fichiers. Smiley smile
J'ai passé tous mes fichiers en UTF-8 avec komodo.

quand je suis sur la page en question, le navigateur affiche ISO-8859-15, sur le reste du site c'est en UTF-8

J'utilise joomla 1.5 (CMS). Je ne vois pas d'où ça vient.. merci pour l'aide Smiley cligne

ToraTora
ToraTora a écrit :
quand je suis sur la page en question, le navigateur affiche ISO-8859-15, sur le reste du site c'est en UTF-8

Bon, ça c'est ce que comprend le navigateur. C'est bon à savoir.

Maintenant, comment est déclaré l'encodage des caractères?
Quelles sont les valeurs déclarées (si elles le sont):
- dans le code HTML?
- dans les en-têtes HTTP?

(Si ce n'est pas clair, relire la page que j'ai indiqué, et consulter la FAQ.)
Dans le code c'est écrit:
a écrit :
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


(Même sur la page qui n'affiche pas bien les accents)

J'ai aussi trouvé une page php qui déclare le charset avec header(), mais comme il s'agit d'un CMS, je ne sais pas à quel niveau c'est inclus dans l'index.

En fait ce que je comprends pas, c'est que si je fais une nouvelle page, avec accents, encodé en UTF-8, ca passe.
Mais si j'inclus le fichier php qui fait défaut (pourtant en UTF-8 aussi), là toute la page s'affiche mal.
Ok pour la balise META. Maintenant, et avant de chercher la source du problème ailleurs peut-être, il faudrait vérifier la teneur de l'en-tête HTTP Content-Type. Tu peux le faire:
- avec un outil en ligne tel que Web Sniffer;
- avec l'extension Web Developer pour Firefox («Information > View Response Headers»).

Si la page est bien déclarée en UTF-8, alors le navigateur doit l'interpréter en UTF-8 et tu devrais voir «Unicode (UTF-8)» avec Firefox lorsque tu charges la page et que tu fais «Affichage > Encodage des caractères». Si c'est le cas et que tu as toujours ce problème, les options peuvent être:
1. ton fichier n'est pas en UTF-8 (dans Komodo Edit, faire «Edit > Current file settings» pour s'en assurer et si besoin enregistrer en UTF-8);
2. tu as une fonction PHP qui ne gère pas correctement tes données.

Mais vu que le navigateur pense que la page est en ISO-8859-15 d'après ce que tu disais plus tôt, le problème doit être au niveau de la déclaration de l'encodage. L'information de l'en-tête HTTP prend le pas sur la balise META équivalente.
Modifié par Florent V. (14 Apr 2008 - 18:54)
La page est déclaré comme suit :
a écrit :
Content-Type text/html; charset=iso-8859-15


Comment est ce je change ça?
J'ai essayé d'ajouter un header() pour forcer l'UTF-8 sur la page en question, cela a fonctionnné, mais sur les autres pages du site j 'ai eu le message header already sent.

Quels fonctions PHP pourraient changer l'encodage?

Merci de ton aide.
Ça se fait en général dans la configuration du serveur.
Avec un serveur Apache, il suffit généralement de rajouter un fichier .htaccess à la racine du site avec la directive suivante: AddDefaultCharset UTF-8.