Version complète: sur le forum Webmaster Hub : Problème d'encodage lors de validation
Webmaster Hub > Création et exploitation de Sites Internet > Les fondations d'un site > Hébergement de Sites
jaas
Bonjour,

Il semble que j'ai un problème d'encodage de caractères sur mon serveur (dédié fedora) :

Lors de la validation du html, j'obtiens l'alerte suivante:

CITATION
Character Encoding mismatch!

    The character encoding specified in the HTTP header (utf-8) is different from the value in the <meta> element (iso-8859-1). I will use the value from the HTTP header (utf-8) for this validation.


La base de données MySql elle aussi enregistre et délivre ses infos avec des caractères de remplacement pas habituels

Dans mon formulaire de contenu du site, j'ai :
CITATION
... ce site est consacré au dépistage ...


Dans l'administration de la base (via webmin), j'ai :
CITATION
... ce site est consacré au dépistage ...


Dans l'affichage des sources, j'ai :
CITATION
... ce site est consacr&eacute; au dépistage ...


Les moteurs indexent :
CITATION
... ce site est consacré au dépistage ...



De quoi y perdre son latin blink.gif

Si quelqu'un peut m'aider à résoudre ce problème, merci d'avance.
Dudu
Bonjour,

Le message est pourtant explicite, non ?
L'encodage d'une page peut être envoyée de 2 manières différentes:
- par les en-têtes HTTP
- par la balise <meta> adéquate

Là, tu envoies "UTF-8" en en-tête, et "ISO-885-1" en <meta>: il y a donc clairement un conflit, n'est-ce pas.

Comment résoudre le conflit:
au choix tu passes TOUT en ISO-8859-1, ou bien TOUT en UTF-8.
Mais pas un coup l'un un coup l'autre wink.gif
Sont à vérifier:
- l'encodage de la base SQL
- l'encodage de ton éditeur HTML
- les en-têtes HTTP (soit dans un .htaccess soit dans un script PHP ou autre)
- les balises <meta> d'encodage
Et tu les mets tous sur la même longueur d'onde

CITATION(jaas @ lundi 13 mars 2006, 16h37)
De quoi y perdre son latin  blink.gif

Je dirais même plus: de quoi y perdre son Latin-1 ^_^
jaas
Merci pour la marche à suivre,

CITATION
Sont à vérifier:
- l'encodage de la base SQL
- l'encodage de ton éditeur HTML
- les en-têtes HTTP (soit dans un .htaccess soit dans un script PHP ou autre)
- les balises <meta> d'encodage


Pour l'éditeur et les métas, c'est bon, j'ai compris,

pour la base MySql, je suis un peu perdu : avec phpMyAdmin, je savais indiquer latin-1 à la création de la base, mais là, je ne dispose que de webmin qui ne me propose pas un tel choix, je vais essayer de voir s'il n'y a pas un mysql.ini quelque part sur le serveur ...

pour le .htaccess, je suppose que je peux modifier l'info directement dans le httpd.conf pour appliquer l'encodage à tous les sites du serveur !? (il y avait bien AddDefaultCharset UTF-8), par contre faut-il commentée la directive qui suit AddCharset ISO-8959-1 .iso8859-1 .latin1 ou peut-on la laisser

merci encore
Dudu
Si tu avais installé ta base SQL en ISO-8859-1 alors elle y est restée.
D'autant que de vieilles versions de MySQL (toujours en service chez certains hébergeurs) ont quelques problèmes avec l'Unicode.

Donc à mon avis, reste en Latin-1 et enlève juste le "AddDefaultCharset UTF-8" du .htaccess: c'est lui qui mettait le bazar sans aucun doute !
jaas
J'ai remplacé AddDefaultCharset UTF-8 par AddDefaultCharset ISO-8959-1, le validator était content, mais l'affichage de tous les sites utilisants la base de données n'était plus bon.

Je vais suivre ton conseil et réinstaller une base mysql plus récente en ISO-8859-1

Merci pour tous ces éclaircissements.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.