8796 sujets

Développement web côté serveur, CMS

Bonjour à toutes et tous,

Je suis en train de faire un site internet : Smiley url http://www.la-grange-sardieres.fr/site%20Fab/presentation2css.php[/url]

Si vous allez sur le lien du site, dans le premier menu, si vous cliquez sur "théâtre" et ensuite sur "399 secondes" vous pouvez voir apparaitre dans la fenêtre de droite un texte avec un caractère bizarre : �, à la place des apostrophes, des points , etc.

Savez-vous d'où cela pourrait venir ?? J'utilise la police Garamond pour information, mais avec l'Arial c'est pareil.

Auriez-vous une solution pour y remédier ??

Merci beaucoup pour vos réponses et bonne soirée
Ton contenu est chargé par une requete xhr. la réponse de celle ci montre un BOM au début.
Vérifie que ton script php renvoie de l'urf8 sans BOM.
Voici mon code :

<?php
header('Content-type: text/html; charset=UTF-8');
$idc = $_GET['id'];
require("identification/connexion_sql.php");

$requete2 = "SELECT id_contenu, photo_contenu, lieu, titre, dateetnbrepage, editeur, texte FROM contenu WHERE contenu.id_contenu='$idc'";
$reponse2 = mysql_query($requete2) or die ("impossible d'effectuer la requête");
while($affiche2 = mysql_fetch_array($reponse2)) {
$lieu = utf8_encode(htmlentities($affiche2['lieu']));
$titre = utf8_encode(htmlentities($affiche2['titre']));
$datepage = utf8_encode($affiche2['dateetnbrepage']);
$editeur = utf8_encode(htmlentities($affiche2['editeur']));
$texte = utf8_encode(htmlentities($affiche2['texte']));

print '<div id="textDiv"><div class="texte_lieu">'.$lieu.'</div>
      <br />
      <div class="texte_titre">'.$titre.'</div>
      <br />
      <div class="texte_dateetnbrepage">'.$datepage.'</div>
      <div class="texte_editeur">'.$editeur.'</div>
      <br />
      <div class="texte_contenu">'.$texte.'</div><br />
</div>';

}
mysql_close();
?>


Dans chaque page j'ai mis : header('Content-type: text/html; charset=UTF-8');

Malheureusement, maintenant les ' sont carrément enlevés du texte.

Je ne trouve pas la solution Smiley decu
Modifié par quaresma (27 Oct 2010 - 12:35)
je te propose de tester ce code pour voir si ca a un effet (j'ai changé l'emplacement des utf8_encode et utilisé l'option ENT_QUOTES de html_entities et proposé une alternative a utf8_encode avec iconv en commentaire)


header('Content-type: text/html; charset=UTF-8');
$idc = $_GET['id'];
require("identification/connexion_sql.php");

$requete2 = "SELECT id_contenu, photo_contenu, lieu, titre, dateetnbrepage, editeur, texte FROM contenu WHERE contenu.id_contenu='$idc'";
$reponse2 = mysql_query($requete2) or die ("impossible d'effectuer la requête");

while($affiche2 = mysql_fetch_array($reponse2)) {
	$lieu = htmlentities($affiche2['lieu'], ENT_QUOTES);
	$titre = htmlentities($affiche2['titre'], ENT_QUOTES);
	$datepage = $affiche2['dateetnbrepage'];
	$editeur = htmlentities($affiche2['editeur'], ENT_QUOTES);
	$texte = htmlentities($affiche2['texte'], ENT_QUOTES);
	
	print utf8_encode('<div id="textDiv"><div class="texte_lieu">'.$lieu.'</div>
										      <br />
										      <div class="texte_titre">'.$titre.'</div>
										      <br />
										      <div class="texte_dateetnbrepage">'.$datepage.'</div>
										      <div class="texte_editeur">'.$editeur.'</div>
										      <br />
										      <div class="texte_contenu">'.$texte.'</div><br />
										</div>');
										
	/*
	OU si ca marche toujours pas:
	print iconv("ISO-8859-1//TRANSLIT", "UTF-8",'<div id="textDiv"><div class="texte_lieu">'.$lieu.'</div>
										      <br />
										      <div class="texte_titre">'.$titre.'</div>
										      <br />
										      <div class="texte_dateetnbrepage">'.$datepage.'</div>
										      <div class="texte_editeur">'.$editeur.'</div>
										      <br />
										      <div class="texte_contenu">'.$texte.'</div><br />
										</div>');
	*/
}
mysql_close();

Modifié par skywalk3r (27 Oct 2010 - 12:50)
Merci pour ta réponse.

Malheureusement, j'ai testé les deux solutions et cela ce fonctionne toujours pas.

les ' sont toujours enlevés du texte.
Convertis le fichier incriminé en utf8 sans bom (grâce à notepad++ par exemple, menu encodage)