Problème d'affichage des caractères

Problème d'affichage des caractères - HTML/CSS - Programmation

Marsh Posté le 23-01-2008 à 17:04:26    

Salut !
 
Je développe actuellement un site web en PHP/MySQL et j'ai un problème avec l'affichage des caractères avec accent
J'ai d'abord pensé à un problème lié à PHP ou à la lecture de la base, mais lorsuqe j'affiche la source de ma page, les accents sont bien présents.
 
ex :
 

Code :
  1. <br /><h3><label>
  2.     <input name="1" type="checkbox" value="1" />
  3.     formule d’accueil précisant le nom de l’établissement
  4.     </label></h3>


 
Le texte affiché donne :
 
formule d�accueil pr�cisant le nom de l��tablissement  
 
Comment résoudre ce problème ???
 
Merci

Reply

Marsh Posté le 23-01-2008 à 17:04:26   

Reply

Marsh Posté le 23-01-2008 à 17:21:18    

Quel est le charset utilisé par le navigateur (sous Firefox : clic droit, View page info => ligne "encoding" ) et quel est le charset que tu as utilisé pour enregistré ton fichier (certainement cp1252 si tu es sous Win). S'ils sont différents, tu as oublié une déclaration <meta http-equiv="content-type"....> dans ta page.

Reply

Marsh Posté le 23-01-2008 à 17:34:52    

J'ai ca dans ma source :
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 
Et IE utilise UTF-8 aussi...
 
Pour le charset utilisé pour enregistrer le fichier.. aucune idee, je suis sous dreamweaver CS3
 
Le code de ma page :
 

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <?php
  5. include ("./ressource/Fonctions.php" );
  6. ?>
  7. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  8. <title>Création de QCM en rapport avec une mission commandée</title>
  9. <!-- Le client peut ici créer le QCM associé à une mission commandée à l'un de nos commerciaux. Sur demande du client, les QCM pourront aussi être créées par le commercial qui aura accès à cette interface d'administration -->
  10. </head>
  11. <body>
  12. <p>
  13.   <?php
  14. if (!$db=connect_sql("localhost", "xxx", "xxx", "xxx" )) //Connexion à Mysql et à la BDD
  15. {
  16.  exit;
  17. }
  18. $query="SELECT * FROM tcategories";
  19. $result=mysql_query($query,$db);
  20. if(!$result)
  21. {
  22.  echo "erreur lors du comptage des catégories. Contactez votre commercial Fidelys.";
  23.  exit;
  24. }
  25. $num_cat=mysql_num_rows($result);
  26. echo '<form id="form1" name="choix" method="post" action="add_qcm.php">';
  27. $num_quest_total=0;
  28. for($i = 0; $i<$num_cat; $i++)
  29. {
  30.  $row = mysql_fetch_array($result);
  31.  echo "<h1>".$row['Nom']."</h1>
  32.  ";
  33.  $query2="SELECT * FROM tquestions WHERE Id_categorie=".$row['Id_categorie']."";
  34.  $result2=mysql_query($query2,$db);
  35.  if(!$result2)
  36.  {
  37.   echo "erreur lors de la récupération des questions. Contactez votre commercial fidelys";
  38.   exit;
  39.  }
  40.  $num_quest=mysql_num_rows($result2);
  41.  if ($num_quest>0)
  42.  {
  43.   for ($a=0; $a<$num_quest; $a++)
  44.   {
  45.    $row2=mysql_fetch_array($result2);
  46.    $num_quest_total++;
  47.    if($row2['reglementaire']==TRUE)
  48.    {
  49.     echo '<br /><h3><font color=#ff0000>'.$row2['question'].'</font></h3>';
  50.    }
  51.    else
  52.    {
  53.     echo '<br /><h3><label>
  54.     <input name="'.$num_quest_total.'" type="checkbox" value="'.$row2['Id_Question'].'" />
  55.     '.$row2['question'].'
  56.     </label></h3>
  57.     ';
  58.    }
  59.   }
  60.  }
  61. }
  62. echo '<input name="nombre" type="hidden" id="hiddenField" value="'.$num_quest_total.'" />';
  63. echo '</form>';
  64. ?>
  65. <p>
  66. </body>
  67. </html>


Message édité par captainneuneu le 23-01-2008 à 17:39:21
Reply

Marsh Posté le 23-01-2008 à 18:03:37    

Pour savoir si c'est vraiment de l'UTF-8, ouvre ton .html dans notepad, va dans "enregistrer sous" et regarde le popup "Encoding". S'il y a marqué UTF-8, bah c'est bon. S'il y a ANSI, c'est que tu as oublié de configurer quelque chose dans Dreamweaver (que je ne connais pas).

Reply

Marsh Posté le 23-01-2008 à 18:30:18    

Je viens de le faire et notepad me propose bien UTF-8 par defaut dans encoding....
 
Bizarre cette histoire...
 
Mais IMPORTANT ! Si quelqu'un d'autre a une piste...
 
Merci tpierron en tout cas ;)

Reply

Marsh Posté le 23-01-2008 à 18:34:29    

J'ai peut être une piste :
 
Il semblerait que le fichier html généré par mon serveru PHP soit en ANSI... (afficher la source, enregistrer sous, encoding : ANSI)
 
Comment faire ?

Reply

Marsh Posté le 23-01-2008 à 18:41:03    

J'ai remplacé UTF-8 par iso-8859-1 dans mon fichier PHP et ca marche.
 
Solution de porc, et je ne sais pas pourquoi ca marche d'ailleurs...

Reply

Marsh Posté le 23-01-2008 à 19:32:52    

Bah, au pire fait un dump hexa de ton fichier (celui enregistré par Dreamweaver). En UTF-8, un "é" est encodé avec 2 octets : 0xC3 et 0xA9. En cp1252, il n'y en a qu'un : 0xE9 (qui est un caractère UTF-8 invalide). Je soupçonne que ton fichier est réellement enregistré en cp1252, mais que tu as déclaré UTF-8.
 
Edit: sinon tu as toujours les bonnes vieilles entités, tout droit sorties d'HTML 1.0 : &eacute; ....

Message cité 1 fois
Message édité par tpierron le 23-01-2008 à 19:34:16
Reply

Marsh Posté le 24-01-2008 à 13:38:13    

tpierron a écrit :

Je soupçonne que ton fichier est réellement enregistré en cp1252, mais que tu as déclaré UTF-8.


+1. Un caractère � indique un caractère invalide en utf-8, donc un caractère avec un code hexa situé entre 0x1F et 0xff


Message édité par FlorentG le 24-01-2008 à 13:38:21
Reply

Marsh Posté le 24-01-2008 à 18:26:26    

j'ai solutionné le problème en utilisant la fonction php utf8_encode() sur toutes les données récupérées de ma BDD MySql (encodée en UTF8 pourtant)
 
Je n'ai toujours rien compris, mais ca fonctionne.

Reply

Marsh Posté le 24-01-2008 à 18:26:26   

Reply

Marsh Posté le 29-01-2008 à 20:40:34    

Si t'as mysql > 4, oublie pas une requête 'SET NAMES utf8', sinon il reconvertir en iso-8859-1 (note l'absence de tiret dans utf8)

Reply

Marsh Posté le 18-03-2008 à 08:42:48    

Dreamweaver CS3 est une vraie merde pour l'enregistrement des fichiers, j'ai appris ça hier.
 
Il encode automatiquement tes pages d'une manière plus que bizzare, et fait régulièrement péter tes accents, alors combiné avec vista qui parfois te corromp tes fichiers, c'est le bonheur, j'ai faillit perdre la V5 de seasexandsun les images ne marchaient plus (vive les sauvegardes)
 
Si tu veux pu de soucis d'accent, je crois que l'option d'encodage de l'enregistrement de cs3 se désactive, un ami me l'a dit hier, je cherche et quand j'ai trouvé je te le dis. En attendant, je faisais un truc tout simple, mon header et footer sont justes, j'ai une page vierge.php qui est viable, quand je créé une nouvelle page pour le site, c'est vierge.php qui est renommée, quand j'ai une page qui a des accents qui ne passe pas, je la copie/colle dans vierge.php et je la réenregistre et ça passe comme par magie (donc c'est bien dreamweaver qui fout sa merde, sous studio8 jamais eu ce soucis)
 
Sinon en attendant, en local comme en web, tu peux rajouter un .htaccess avec ca dedans :  
 
AddDefaultCharset ISO-8859-1

Reply

Marsh Posté le 18-03-2008 à 09:23:15    

corwin95600 a écrit :

Sinon en attendant, en local comme en web, tu peux rajouter un .htaccess avec ca dedans :  
 
AddDefaultCharset ISO-8859-1


 
Ouais mais nan, il s'agirait de se moderniser un peu, et de plutôt faire

Code :
  1. AddDefaultCharset utf-8


Et de tout basculer en utf-8

Reply

Marsh Posté le 18-03-2008 à 12:03:23    

Oui c'est mieux :) je parlais pour régler son problème sans reprendre toutes ses pages.
 
Perso j'utilise des encodages différents selon les langues, 3/4 du temps utf-8, et de toute façon vu que j'utilise pas mal le XML j'ai po le choix :)

Reply

Marsh Posté le 21-12-2008 à 12:28:15    

Bonjour,
 
J'ai le même problème j'ai un carré à la place des accents. Le seul problème c'est que quand je faisais des mises à jour de mon site et tout allait bien, sauf depuis hier soir.
Le souci, c'et que j'ai rien compris à ce que vous avez écrit, car je suis loin d'êre douée en informatique.
J'ai donc cherché sur internet et apparement il faut qu j'aille dans "Windows, allez dans le menu “Outils\Option des dossiers...” puis dans l'onglet “Types de fichiers” sélectionnez l'extension HTML et associez-y votre Explorateur Internet en cliquant sur le bouton “Modifier...” , l'explication ne doit pas être pour vista, car j'ai pas trouvé.
 
Donc si quelqu'un pouvait m'aider avec des infos tès simples, ça serait sympa de votre part, merci.

Reply

Marsh Posté le 21-12-2008 à 19:47:05    

Et cette méta marche pas ?

 

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

 

Et celle là :
<meta http-equiv="content-type" content="text/html; charset=windows-1252" />


Message édité par FR-DarkRod le 21-12-2008 à 19:48:30
Reply

Marsh Posté le 21-12-2008 à 21:12:09    

Le problème c'est que je sais pas où mettre ça, je suis très débutante, et donc pour moi tout ceci est nouveau, et j'ai essayé de le mettre mais souci, à quel endroit.
Désolé je suis un vrai boulet....

Reply

Marsh Posté le 21-12-2008 à 21:23:52    

Fox36 a écrit :

Le problème c'est que je sais pas où mettre ça, je suis très débutante, et donc pour moi tout ceci est nouveau, et j'ai essayé de le mettre mais souci, à quel endroit.
Désolé je suis un vrai boulet....


 
 :??:

Reply

Marsh Posté le 22-12-2008 à 18:04:34    

Oui ça  
 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 
 
Et celle là :
<meta http-equiv="content-type" content="text/html; charset=windows-1252" />
 
Je le mets où?
 

Reply

Marsh Posté le 22-12-2008 à 18:19:02    

oui tu débutes...
Ces balises ont leur place entre les balises <head> et </head>

Reply

Marsh Posté le 22-12-2008 à 18:49:40    

http://i73.servimg.com/u/f73/09/03/24/82/th/sans_t11.jpg
 
Question, je met ça dans cette page ? Car j'ai beau essayer mais ça marche pas. Le truc que je ne compends pa c'est que jusqu'à samedi sor, quand je m'étais mon site à jour, ce genre de problème n'arrivait jamais!


Message édité par Fox36 le 22-12-2008 à 18:57:31
Reply

Marsh Posté le 23-12-2008 à 22:39:44    

Merci à vous tous pour votre, mon problème est enfin résolu.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed