mauno Posté 15 Août 2010 Posté 15 Août 2010 Bonjour, Sans doute que ce sujet à été traité plusieurs fois, cependant, je nai pas réussi à corriger ce problème. Jai fais bien des recherches mais sans aucune solution qui marche En fait, jai 2 « include » dans mon index qui renvoient à un footer et un header. Jai en plus un système de news avec MySQL, celui-ci est encodé en « utf8_unicode_ci » Mon index est aussi encodé en Utf8, cepandant jai toujours des « ? » à la place ces « éà » Jai essayé de mettre en ISO ou utf8_decode sans résultat Jespère que vous pourrez maider. Merci davance.
Ernestine Posté 15 Août 2010 Posté 15 Août 2010 Salut, Un é qui s'affiche ?, c'est un é iso-latin affiché dans une page utf8. Essaye la commande SET NAMES. En php : mysql_query("SET NAMES 'utf8'"); A effectuer une bonne fois pour toutes juste après la connexion. Avec ça, mysql enverra tes données en utf8.
yuston Posté 15 Août 2010 Posté 15 Août 2010 As-tu <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> dans ton fichier index? Et ce fichier est bien et bel encodé en UTF8?
mauno Posté 15 Août 2010 Auteur Posté 15 Août 2010 (modifié) Bonsoir, Dans mon index j'ai bien <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Et ma page est bien encodée en Utf8 Et en fait c'est tout les caractères spéciaux qui deviennent des "?" De plus j'avais ce problème avant même d'intégré le mySQL. J'ai tout de même testé ta solution Ernestine, mais la les "é" deviennent des "é". Cependant je vois les "'" et les "^". Donc c'est pas encore ça Modifié 15 Août 2010 par mauno
Ernestine Posté 15 Août 2010 Posté 15 Août 2010 J’ai essayé de mettre en ISO ou utf8_decode sans résultat… En l'occurence, c'est plutôt utf8_encode qui aurait éventuellement fait l'affaire. J'ai tout de même testé ta solution Ernestine, mais la les "é" deviennent des "é". Cependant je vois les "'" et les "^".Donc c'est pas encore ça Je n'ai pas bien compris ce que tu viens de dire...
mauno Posté 15 Août 2010 Auteur Posté 15 Août 2010 (modifié) Re-bonsoir, Oula, oui... c'est bizarre ce que j'ai dis là... Je voulais dire que j'ai testé ton code, cependant j'ai toujours un problème avec les caractères : les "é" sont transformés en "&". Pour les guillemets, il n'y a pas l'air d'avoir de problème de ce coté avec ce code. Je vois donc bien les : « ‘^ ». J'ai essayé avec utf8_encode. J'ai vidé tout mes caches par précaution, mais ça ne marche pas. En faite, quand j’arrive sur le site j’ai tout les caractères spécifiques. Je décide alors d’utiliser le menu pour aller vers « fiche technique » et là si c’est encodé comme l’index : utf8_encode, alors tout les caractères spéciaux sont modifiés. Dans le cas où c’est utf8, ça marche (sauf le menu qui garde des caractères en « ? »). Si à partir de là, je retourne vers l’accueil, tout les caractères spéciaux sont modifiés. Je dois donc recharger la page une nouvelle fois afin que les caractères spéciaux marchent bien. (A noter que pour l’index, lorsque les caractères spéciaux marchent, ceux du menu marchent aussi. Ce qui n’est pas le cas pour la « fiche technique ». J’espère que je me fais bien comprendre car c’est bien difficile à expliquer. Modifié 15 Août 2010 par mauno
Dadou Posté 16 Août 2010 Posté 16 Août 2010 Moi je penche pour un problème de fichier pas correctement enregistré au format UTF-8 sans BOM, tu utilises quoi comme éditeur?
mauno Posté 16 Août 2010 Auteur Posté 16 Août 2010 Bonjour, Voici le site :/>http://en.oblivion.free.fr Et pour l'éditeur c'est notepad++
Ernestine Posté 16 Août 2010 Posté 16 Août 2010 J'ai trouvé ça dans ton code : <meta http-equiv="Content-Type" content="text/html; charset=utf8_encode" /> Ce n'est pas ça du tout ! Essaie : <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> La prochaine fois, passe ta page au validateur du W3C, cela te permettra d'éliminer de grossières erreurs comme celle-ci PS : utf8_encode est une fonction php, à utiliser par exemple comme : print(utf8_encode($texte)); (où $texte serait extrait de ta base de données)
Dadou Posté 16 Août 2010 Posté 16 Août 2010 Et notepad++ t'indique bien que tous tes fichiers sont en UTF-8 sans BOM (j'insiste sur le sans BOM, IE gère très mal le BOM).
mauno Posté 16 Août 2010 Auteur Posté 16 Août 2010 Re-bonjour, Ce code que tu as trouvé Ernestine : <meta http-equiv="Content-Type" content="text/html; charset=utf8_encode" /> c'est parce que j'ai essayé de trouver comment régler le problème en changeant les encodages mais sans résultat. J'ai donc bien remplacé dans toute les pages l'ancien code par : <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Et j'ai réglé en Utf-8 sans BOM avec notepad++. Le menu et le footer marchent très bien maintenant, il n'y a plus de problème de caractère sur ces deux parties. Cependant, j'ai encore le problème de caractère sur les news. Pourtant j'ai bien mis mysql_query("SET NAMES 'utf8'"); dans la script qui poste les news. Le MySQL est bien réglé aussi et j'ai encodé aussi en utf-8 sans BOM.
captain_torche Posté 16 Août 2010 Posté 16 Août 2010 Juste au cas où : tu n'aurais pas déjà des problèmes d'accents dans ta base de données ?
mauno Posté 16 Août 2010 Auteur Posté 16 Août 2010 Pour ma base de donnée, j'ai aucun problème, tout les caractères sont visibles.
Dadou Posté 16 Août 2010 Posté 16 Août 2010 Et j'ai réglé en Utf-8 sans BOM avec notepad++. Le problème n'est pas que tu as réglé UTF-8 sans BOM avec notepad++, mais est ce que tu es sûr à 100% que TOUS les fichiers sont bien resté en UTF-8 sans BOM, les as tu vérifiés un par un. Parce que la ton code source à un problème conséquent : <script type="text/javascript"> // M�thode pour changer la visiblit� d'une balise dont l'ID est pass�e en param�trefunction toggleVisibility(tagId) {if (!document.getElementById) {msg = 'Votre navigateur est trop ancien pour ce site';msg += 'Veuillez le mettre � jour ou vous en procurer un autre';return false;}var tagToToggle;try { // On tente de r�cup�rer la balise cible dont on doit changer la visibilit�tagToToggle = document.getElementById(tagId);} catch (e) { // Si �chec de la r�cup�ration de la balise ciblealert('la balise cible reste introuv�e');}try { // Seulement pour les non IEif (tagToToggle.style.display == 'none') {tagToToggle.style.display = 'inline';} else {tagToToggle.style.display = 'none';}} catch (e) {}// Pour IEif (tagToToggle.style.visibility == 'hidden') {tagToToggle.style.visibility = 'visible';} else {tagToToggle.style.visibility = 'hidden';}} var onlyOne = (function(){ var precedentId = null; return function(tagId) { if(precedentId != null){ toggleVisibility(precedentId); // dans le cas o� il y avait un pr�c�dent �l�ment qui a �t� affich�, on ne l'affiche plus } if(precedentId != tagId){ toggleVisibility(tagId); //on affiche le nouvel �l�ment precedentId = tagId; }else{ precedentId = null; //il s'agit du m�me �l�ment qui est s�lectionn�, on consid�re donc qu'il n'y a plus d'�l�ment affich� } };})(); </script> Tu es sur de ne pas avoir un problème dans ta base, car les news du 6 et du 8 s'affichent correctement
mauno Posté 16 Août 2010 Auteur Posté 16 Août 2010 Dadou, tu viens de me faire penser au javascript contenu dans un autre dossier. Je l'ai mis aussi en Utf8 sans BOM Et là apparemment ça semble marcher. Je pensais pas que il fallait aussi modifier le java, puisqu'il sert juste à afficher et cacher... Pour les news du 1 et du 6 en fait c'est des fausses news. Elles sont directement dans le html.
Dadou Posté 16 Août 2010 Posté 16 Août 2010 Et oui, il suffit d'un seul fichier qui ne soit pas en UTF-8 et tout foire
mauno Posté 16 Août 2010 Auteur Posté 16 Août 2010 Et bien, merci bien à tous pour votre aide Sans vous je serais encore bloqué à l'heure qu'il est. J'espère seulement que je n'aurais pas d'autres problèmes du même genre
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant