jaas Posté 13 Mars 2006 Posté 13 Mars 2006 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: 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 : ... ce site est consacré au dépistage ... Dans l'administration de la base (via webmin), j'ai : ... ce site est consacré au dépistage ... Dans l'affichage des sources, j'ai : ... ce site est consacré au dépistage ... Les moteurs indexent : ... ce site est consacré au dépistage ... De quoi y perdre son latin Si quelqu'un peut m'aider à résoudre ce problème, merci d'avance.
Dudu Posté 13 Mars 2006 Posté 13 Mars 2006 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 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 De quoi y perdre son latin Je dirais même plus: de quoi y perdre son Latin-1
jaas Posté 13 Mars 2006 Auteur Posté 13 Mars 2006 Merci pour la marche à suivre, 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 Posté 13 Mars 2006 Posté 13 Mars 2006 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 Posté 14 Mars 2006 Auteur Posté 14 Mars 2006 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.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant