Aller au contenu

Sujets conseillés

Posté

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 :blink:

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

Posté

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  :blink:

Je dirais même plus: de quoi y perdre son Latin-1 ^_^

Posté

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

Posté

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 !

Posté

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.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...