Rechercher : dans
Par :

[utf-8] codage de page non-reconnu

Dernière réponse le 15 jun 2009 à 21:16:19 hibou57, le 11 jan 2006 à 00:41:57 
 Signaler ce message aux modérateurs

Hi All,

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 ?

Quelqu'un(e) a une idée ?

Merci beaucoup

A+

Configuration: XSLTProc
FireFox 1.5
Windows 98SE

Meilleures réponses pour « [utf 8] codage de page non reconnu » dans :
[Pilotes USB] Périphériques non reconnu Voir Problème J'ai un problème de prises USB en façades qui ne fonctionnent plus. Quand je branche n'importe quel appareil, mon Windows XP SP2 affiche la petite bulle en bas à droit "Périphérique USB non reconnu". Solution Suivre la méthode suivante...
Carte mémoire non reconnue (SD, Smartmédia, memory stick, etc.) VoirSi votre ordinateur ne reconnait plus votre carte mémoire, il peut s'agir d'un des problèmes suivants : La carte a été formatée avec un système de fichiers non supporté. Il est nécessaire de la formater en FAT16 : Formater une carte mémoire La...
Disque dur externe USB non reconnu sous Windows VoirSi Windows ne reconnaît pas votre disque dur externe, veuillez vérifier les points suivants : Dans le panneau de configuration : Double-cliquer sur Outils d'administration, Cliquer sur Gestion de l'ordinateur Cliquer sur Gestion des...

1

cestadire.ch, le 11 jan 2006 à 11:14:39
  • +1

Vérifie que la ligne

<meta http-equiv="Content-Type"
content="text/html;charset=UTF-8" />

est bien la première ligne après le tag <head>

Tutoriels PHP, Logiciels libres sur http://cestadire.ch

Répondre à cestadire.ch

2

hibou57, le 11 jan 2006 à 14:08:28

Merci pour ta réponse Cetadire,

Oui, je viens de verifier, elle est bien le premier élément de head.

J'ai posté cette question dans plusieurs forums, et pas de réponse. Je ne pensais pas que la reconnaissance de l'utf-8 était si peu évidente.

Répondre à hibou57

3

hibou57, le 11 jan 2006 à 18:35:43
  • +6

La solution passe par le fichier .htaccess.

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.

Répondre à hibou57

4

MissTrik, le 6 aoû 2008 à 19:52:25
  • +1

Bonjour,

Si vous avez encore des problèmes d'encodage de caractère après avoir mis dans votre code juste après la balise <head> :

<meta http-equiv=Content-Type content="text/html; charset=utf-8" />

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..

Répondre à MissTrik

7

micmic, le 21 mar 2009 à 00:29:19

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

Répondre à micmic

5

Greg, le 18 fév 2009 à 15:06:42

@MissTrik

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...

Répondre à Greg

6

Loulou, le 18 fév 2009 à 17:23:04

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.

Ou tout simplement :

<?php
echo 'OK';
?>

n'affiche rien....

Une idée lumineuse ???

Répondre à Loulou

8

Emz0, le 15 jun 2009 à 06:29:48

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.

Répondre à Emz0

9

MissTrik, le 15 jun 2009 à 09:04:35

Le code PHP peut être interprété même s'il est dans un fichier .html =)

Et pour corriger mon précédent post :

"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é."

Il faut plutôt votre vos fichiers en UTF-8 sans BOM.

Répondre à MissTrik

10

 Emz0 pas très bon en codage mais qui cherche à s'améliorer, le 15 jun 2009 à 21:16:19

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

Répondre à Emz0 pas très bon en codage mais qui cherche à s'améliorer