Encoder ou pas les accents ?

WRInaute discret
Nouvelle discussion sur les accents car je doute:

ma page a
Code:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
donc ca "devrait" afficher les accents non encodés dans le html, je veux dire que j'ai écrit :
gérer et non g&eacute;rer : ca devrait apparaitre

pourtant firefox est par defaut configuré avec affichage>encodage>UTF-8 et detection automatique desactivé, a priori 90% des internautes ne touche pas a ce parametre (IE pareil).

donc j'en deduis que
1/ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> est surclassé par le paramétrage du navigateur
2/ qu'il vaut mieux encoder ses accents

mais... a) google reference-t-il bien le caractere encodé ?

b) il n'y a pas un moyen de forcer le parametrage navigateur, en lui disant "je sais bien que tu veux du utf-8 mondialisé mais moi j'ai de beaux accents francais venus du moyen age a te montrer" ;) ?
 
WRInaute discret
ricoftb a dit:
1/ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> est surclassé par le paramétrage du navigateur
Faux. Ce paramètre du navigateur concerne uniquement le cas où aucune information n'est disponible sur l'encodage du document:
- aucun encodage déclaré dans les en-têtes HTTP;
- pas de prologue XML précisant l'encodage;
- pas de balise META http-equiv;
- etc.

Si le navigateur ne reçoit aucune information de ce type, il peut:
- appliquer un encodage par défaut (iso-8859-1 ou utf-8 selon le système d'exploitation, il me semble);
- tenter une détection automatique de l'encodage.

Mais ce système de secours (encodage par défaut et/ou détection) n'est appliqué qu'en cas de déficit d'information sur l'encodage.

Il appartient au concepteur du site de veiller à ce qu'il n'y ait pas de déficit, en donnant l'information sur l'encodage:
1. en priorité, via les en-têtes HTTP;
2. accessoirement, via une balise META http-equiv (qui sert essentiellement si le fichier est enregistré en local par l'utilisateur et/ou pas servi par un serveur web, ou si l'information n'est pas présente dans les en-têtes HTTP).

ricoftb a dit:
2/ qu'il vaut mieux encoder ses accents
Faux également. À moins qu'il ne s'agisse de fichiers susceptibles d'être servis avec plusieurs encodages différents, comme par exemple des gabarits ou templates HTML.
 
WRInaute impliqué
Salut,

Selon mon expérience, tu risques des problèmes d'affichage dans le cas où il y a une différence quelque part entre :
- encodage réel du document
- encodage déclaré dans le document
- encodage indiqué dans un en-tête quelque part dans le processus de transmission

Donc, si tes en-têtes déclarés et réellement utilisés sont identiques, tu ne devrais avoir aucun problème. Dans le cas contraire, je te conseillerais d'encoder tes entités.
N.B. : Tu peux utiliser un outil comme Live HTTP Headers pour vérifier tous les en-têtes reçus.
 
WRInaute discret
effectivement avec

Code:
<?php header('Content-type: text/html; charset=iso-8859-1');?>

un accent dans le html est bien imprimé à l'écran, quelquesoit la directive du navigateur, ca force l'encodage du navigateur.

maintenant le probleme c'est les accents venant la base de données (ils ont été entrés normalement) qui sont tronqués 8O

 
WRInaute impliqué
Ce qui semblerait indiquer que ta base de données stocke en utf-8. Même problème : s'assurer de la cohérence du codage d'un bout à l'autre. Jette un oeil aux fonctions utf8_encode, utf8_decode.
 
WRInaute accro
ricoftb a dit:
2/ qu'il vaut mieux encoder ses accents

mais... a) google reference-t-il bien le caractere encodé ?

T'encode pas tes accents pour Google car il sait lire le francais !! Sinon on serait au moyen age. Le seul endroit ou tu peux encoder tes accents, ce sont dans les metas et le titre, en vu d'un referencement plus vaste sur des moteurs etrangers..
 
Discussions similaires
Haut