J'ai écris une page HTML en UTF-8. J'ai une balise <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">. Tout ce qu'il faut pour afficher une page en utf-8. Mais quand j'ouvre la page dans un navigateur, elle s'affiche comme si elle était en ascii, et il faut que je choisisse la codage dans le menu, pour qu'elle s'affiche normalement (aussi bien avec IE que FireFox)
Pourquoi le navigateur ignore t-il le charset déclaré dans http-equiv, et ne reconnais pas non-plus que le fichier est en utf-8 (ce qui devrait être facilement reconnu) ?
Je me suis dit que c'est peut-être le serveur qui renvoie un charset 8859-1 dans l'entête http... (valeur par défaut) mais quand même ça n'explique pas pourquoi le navigateur ignore le http-equiv de la balise meta.
Comment est reconnu http-equiv au juste ? A t-il la priorité sur le charset indiqué dans l'entête http ?
Comment s'assurer qu'une page codée en utf-8, soit bien reconnue comme telle par le navigateur qui la reçoit ?
c'est que vous n'avez pas encodé votre document en UTF-8. Pas la peine d'utiliser un fichier .htaccess.
Solution :
Si vous utilisez Notepad++, dans l'onglet "Format" en haut, choisiez UTF-8, n'oubliez pas la ligne <meta ..> cité plus haut, et le tour est joué.
Vous n'êtes plus obligé d'utiliser les caractères xHtml pour écrire avec des accents (&eagrave; pour è, é pour é ect...)
Bon Encodage.
PS : Ce sujet est vieux, cependant aucune réponde précise ne répondait à la question, et vu que ce topic tombe en 1er sur google quand on a un problème en UTF-8..
micmic
content="text/html; charset=utf-8 bon j encodais avec dreamweaver et mes pages etaient sauvegardées au format html avec la nouvelle version dreamweaver cs 4 ca m encode toujours avec content="text/html; charset=utf-8 mais mes page sont sauvegarder en .htm j ai refondu tout le site avec des pages . htm et je n apparais plus sur les pages de google alors que je sortais dans les 1 er resultats sur beaucoup de ses pages. quand je vais sur les google adtools il me dis que mon site n est pas ou plus indexer chez lui je crise la est ce que google ne reconnais pas le format .htm j ai l impression qu il ne lis plus mes pages :( help wanted svp
tux3
+1000 MissTrik, exactement la solution a mon problème d'encodage :
notepad++ > all > notepad
Y a pas besoin de réécrire... J'en profite pour mettre à jour la solution :
Il faut aller dans le menu encodage de notepad++ et sélectionner convertir en UTF-8 sans BOM
Il faut ajouter la directive « AddDefaultCharset », avec soit l'argument « utf-8 », sout l'argument « Off ».
L'argument « Off » indique au serveur de se renseigner sur la page pour connaître le charset à renvoyer dans l'entête http. C'est donc la solution la plus souple, la plus universelle, et la plus logique.
« AddDefaultCharset » peut aussi prendre un nom d'encodage en argument (ex. « AddDefaultCharset utf-8 »). Cette solution est interessante si toutes les pages du site sont encodées de la même manière. Attention: dans ce cas, le serveur ignore la valeur charset donnée dans la balise meta http-equiv du fichier html.
La valeur avec laquelle est configuré « AddDefaultChartset » sur les serveurs Apache, est « On ». Cette option commande au serveur de renvoyer un charset par défaut, qui est ISO-8859-1. Cela convient dans la plupart des cas, mais reserve de mauvaises surprises (pas trés commode, car le/la visiteur/se doit choisir le charset dans le menu affichage) quand on utilise des caractères non-occidentaux.
Par défaut, les serveurs Apache sont configuré avec « AddDefaultCharset On »... mais en toute logique, la configuration par défaut devrait plutôt être « AddDefaultCharset Off », car c'est la seule qui garantie que le charset de l'entête http, et celui de la page html, sont en cohérence.
Zebulon59
Attention à bien écrire utf-8 en minuscule car Internet Explorer bug si l'encodage est UTF-8... pourquoi tant de haine ? ;-)
Le sujet est vieux mais ça peut être une piste pour d'autres puisque c'est le premier lien sur google...
Tu n'aurais pas oublié le " / " à la fin de ta balise meta ?
Car dans ton post et dans toutes tes réponses tu ne les mets pas... Et ça peut surement provoquer cette erreur.
EDIT: Ou pas, je ne sais pas trop...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Emz0 pas très bon en codage mais qui cherche à s'améliorer
Autant pour moi, mea culpa, etc. C'est beau la technologie... Et moi je suis dépassé ! ^^
D'ailleurs je suis tellement dépassé que je suis complètement largué... Pas pour rien que je me suis retrouvé ici : je cherche désespérément une solution à un problème qui me fait m'arracher mes cheveux !
Puisque vous avez l'air plus au courant, je me permets d'en profiter pour vous poser la question, sait-on jamais :
J'ai installé un mediawiki dernière version (1.14) sur un serveur 1&1, fichiers encodés en utf-8 avec balise en tête indiquant ce codage, .htaccess à la racine forçant l'interprétation en utf-8, bdd en utf-8 et je teste avec différents navigateurs paramétrés en utf-8... Le contenu de mes pages s'affiche sans problème d'accents ou autre. Mais le problème c'est les url : étant donné qu'il s'agit d'un wiki, et francophone de surcroit, les utilisateurs qui ne sont pas des codeurs professionnels (par défaut on les suppose encore plus nuls que moi !) sont amenés à publier des articles dont les titres sont des noms ou expressions correctement orthographiés, c'est à dire conformes à la graphie française, donc comportant des caractères accentués, or l'affichage de ces articles génère des pages dont l'url comporte le nom de l'article, dont nécessairement des caractères accentués. Et voilà tout le problème : quelque soit le navigateur utilisé, taper l'url avec ces caractères accentués retourne une erreur 404 ! Exemple : la page de test http://b0t.info/réalité.htm donne un message d'erreur "page inexistante", ce qui est problématique. Le problème ne vient pas du wiki lui-même puisque cette page de test, placée à la racine du serveur et non du dossier wiki, et n'appelant aucun autre fichier, ne s'affiche pas du tout. Elle ne contient que du basique :
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head>
<body>GA !</body></html>
... 0n peut difficilement faire plus simple !
La solution pour l'afficher consiste à remplacer les caractères accentués ("é") par leur code html/utf-8 hexadécimal ("%E9"), ce qui, il me semble, devrait se faire automatiquement puisque toute la chaîne est en utf-8, et l'utilisation de tels caractères, conforme aux normes W3C (depuis 2005 il me semble), est sensée être gérée par les navigateurs récents. D'après mon service technique 1&1, cela prouve que le problème ne vient pas du serveur, celui-ci recevant de toute façon toujours, lorsque le navigateur les lui envoie correctement, les caractères codés et parvenant lorsqu'on les lui donne à afficher la page, mais du navigateur qui ne parvient pas à coder ces caractères. 0ui, mais...
Le problème se pose avec tous les navigateurs testés (ie6, Firefox3, Google Chrome) sous quelque environnement que ce soit (Vista, XP, Mac 0s X, Fedora), quelque soit le pc utilisé (2 pc, l'un d'un an ; l'autre de 4 ans, à jours ; et un mac assez vieux mais également à jour), et quelque soit le codage paramétré dans le dit navigateur (utf-8, iso occidental, automatique) ; et ces mêmes navigateurs parviennent sans problème à afficher des pages wikipedia ou Amazon dont les url sont accentuées, même sans coder les accents, de même que toutes les pages placées sur d'autres serveurs que le mien, telles que http://www.cheminee-bio-ethanol.org/catalog/cheminées-modernes-c-21.html ! Mon service technique m'assure que leurs serveurs supportent sans problème les accents avec un codage utf-8, et que plusieurs utilisateurs utilisent des url avec de tels caractères sans problème...
Alors, si ça ne vient ni du serveur, ni de mon fichier, ni du navigateur... D'où vient ce *$¤#@¨~"!&+ de problème, très... problématique (!) puisqu'il m'empêche :
- de faire un lien externe vers un article au titre accentué de mon wiki sans coder l'url, ce qui est fastidieux à l'usage pour l'utilisateur lambda qui voudrait, par exemple, faire un lien d'un forum externe vers l'article "réalité" du wiki, et obtiendrai alors une erreur 404 ;
- de faire fonctionner correctement le moteur de recherche interne, qui ne trouve pas les articles au titre accentué
(curieusement les liens internes d'article à article fonctionnent sans problème, le mediawiki codant probablement automatiquement l'url dans ces cas là, mais le moteur de recherche ne trouve aucun article dont le titre est accentué - par ailleurs la fonction "rechercher : lire" ne fonctionne pas, ce qui est peut-être lié à ce problème de codage)
?!
Pourquoi puis-je afficher les url accentuées d'autres sites mais pas du mien ? Comment régler ce problème ?! Avez-vous svp une piste ?
La seule solution éventuelle que je vois pour l'instant serait d'utiliser un urlencode à chaque saisie par l'utilisateur du wiki, mais :
1) C'est relativement complexe à mon niveau ;
2) Le wiki comporte énormément de fichiers dont un certain nombre contiennent des zones de saisie ; je n'ai pas la moindre idée d'où trouver les parties de code concernées ; la doc et les forums d'entraide pour mediawiki sont anglophones et je suis archi-nul en anglais (ou je sais, mea culpa, encore).
3) Je souhaiterais conserver les accents (normalement gérés en utf-8 par les serveurs et navigateurs récents, et aux normes) par souci esthétique et orthographique, mais j'avoue que ce dernier argument, plutôt esthétique, est accessoire.
Je n'y comprends plus rien, et je commence à m'embrouiller après 3 nuits de travail acharné pour tenter de résoudre ce problème probablement pas insoluble (je l'espère !), mais en tout cas difficilement soluble à mon niveau !
Je serais infiniment reconnaissant à toute personne qui aurait une solution ou ne serait-ce qu'une piste pour solutionner ce problème ! Je veux bien lui édifier une église (virtuelle, hein, faut pas pousser ^^).
Merci d'avance à toute âme charitable !
PS : si vous voulez tester le wiki, il se trouve à cette adresse : http://posthumanisme.b0t.info ou http://b0t.info//mediawiki-1.14.0/index.php5?title=Accueil
La config Apache peut aussi jouer. J'ai le même fichier HTML que je poste sur deux Apache avec des résultats différents...
Loulou
Bonjour,
je suis desesperement à la recherche d'un post récent sur un forum, et le votre me fait réver !
je m'explique :
je débute en programmation
je code avec Wamp et NotePad++
mes fichiers.php n'affichent que le code html et tout ce qui est en php est zappé
par exemple :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Notre première instruction : echo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<h2>Affichage de texte avec PHP</h2>
<p>
Cette ligne a été écrite entièrement en (x)HTML.<br />
<?php echo "Celle-ci a été écrite entièrement en PHP."; ?>
</p>
</body>
</html>
ceci n'affiche que la phrase en HTML et pas celle en PHP.
Hum, je ne suis pas un pro mais il me semble qu'habituellement on ne mélange pas du php et du hml comme ça...
Votre page, le fichier, porte quelle extension ? Le php ne fonctionnera que sur un fichier .php (ou .php5, mais en aucun cas .htm ou .html ou autre).
Je suis peut-être à côté de la plaque mais il me semble qu'il faudrait déjà voir ça.
Trouvez des réponses à vos questions sur la création de sites web, le référencement et les meilleures pratiques pour gérer un site. Échangez avec d'autres webmasters passionnés pour améliorer vos compétences en ligne et optimiser vos projets de site web.
notepad++ > all > notepad
Il faut aller dans le menu encodage de notepad++ et sélectionner convertir en UTF-8 sans BOM