Aller au contenu

Encodage


mauno

Sujets conseillés

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.

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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?

Lien vers le commentaire
Partager sur d’autres sites

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é par mauno
Lien vers le commentaire
Partager sur d’autres sites

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...
Lien vers le commentaire
Partager sur d’autres sites

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é par mauno
Lien vers le commentaire
Partager sur d’autres sites

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)

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

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



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