Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
728 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Problème d'affichage des caractères

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème d'affichage des caractères

n°1675814
captainneu​neu
Posté le 23-01-2008 à 17:04:26  profilanswer
 

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

mood
Publicité
Posté le 23-01-2008 à 17:04:26  profilanswer
 

n°1675829
tpierron
Posté le 23-01-2008 à 17:21:18  profilanswer
 

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.

n°1675841
captainneu​neu
Posté le 23-01-2008 à 17:34:52  profilanswer
 

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
n°1675860
tpierron
Posté le 23-01-2008 à 18:03:37  profilanswer
 

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

n°1675881
captainneu​neu
Posté le 23-01-2008 à 18:30:18  profilanswer
 

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

n°1675887
captainneu​neu
Posté le 23-01-2008 à 18:34:29  profilanswer
 

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 ?

n°1675893
captainneu​neu
Posté le 23-01-2008 à 18:41:03  profilanswer
 

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

n°1675903
tpierron
Posté le 23-01-2008 à 19:32:52  profilanswer
 

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
n°1676190
FlorentG
Unité de Masse
Posté le 24-01-2008 à 13:38:13  profilanswer
 

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
n°1676406
captainneu​neu
Posté le 24-01-2008 à 18:26:26  profilanswer
 

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.

mood
Publicité
Posté le 24-01-2008 à 18:26:26  profilanswer
 

n°1678737
FlorentG
Unité de Masse
Posté le 29-01-2008 à 20:40:34  profilanswer
 

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)

n°1703877
corwin9560​0
Posté le 18-03-2008 à 08:42:48  profilanswer
 

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

n°1703889
FlorentG
Unité de Masse
Posté le 18-03-2008 à 09:23:15  profilanswer
 

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

n°1703978
corwin9560​0
Posté le 18-03-2008 à 12:03:23  profilanswer
 

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

n°1830026
Fox36
Posté le 21-12-2008 à 12:28:15  profilanswer
 

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.

n°1830140
FR-DarkRod
Informag€€k
Posté le 21-12-2008 à 19:47:05  profilanswer
 

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
n°1830182
Fox36
Posté le 21-12-2008 à 21:12:09  profilanswer
 

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

n°1830195
FR-DarkRod
Informag€€k
Posté le 21-12-2008 à 21:23:52  profilanswer
 

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


 
 :??:

n°1830527
Fox36
Posté le 22-12-2008 à 18:04:34  profilanswer
 

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ù?
 

n°1830530
Profil sup​primé
Posté le 22-12-2008 à 18:19:02  answer
 

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

n°1830537
Fox36
Posté le 22-12-2008 à 18:49:40  profilanswer
 

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
n°1831010
Fox36
Posté le 23-12-2008 à 22:39:44  profilanswer
 

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

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Problème d'affichage des caractères

 

Sujets relatifs
[C] problème avec scanf()[Resolu] Ajout dynamique onclick et problème d'auto-execution
Probleme mise en ligne d'un site webpetit problème d'allignement
probleme affichage de caractèresProblème d'affichage de caractères chinois remplacés par des ?
probleme d'affichage de caracteresprobleme affichage avec caracteres speciaux ( ' " ...)
[JAVA] probleme d'affichage caracteres spéciauxProblème affichage caractères spéciaux
Plus de sujets relatifs à : Problème d'affichage des caractères


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR