Page 1 sur 1

Problème avec l'affichage des accents

Posté : 30 mai 2007, 11:48
par tuperfredd
Bonjour,

J'ai un petit souci que je n'arrive pas à réparer:

J'ai un système de news qui fonctionne, seulement lorsque j'affiche les news, les accents entre autres s'affichent en "?". Voici mon script:
		    <?php
include ('admin/mysql_connect.php');
$query = "SELECT id, titre, post, DATE_FORMAT(date, '%d %m %y') as sd FROM news_posts ORDER BY id DESC";
$result = @mysql_query($query);

if ($result) {
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {

echo '<p><b>'.$row['titre'].'</b> //
'.$row['sd'].'<p align="justify">
'.$row['post'].'<p>&nbsp<p>';
}
} else {
echo 'There are no news posts to display';
}
?>
J'ai essayé de rajout er ça:
header('Content-Type: text; charset=UTF-8'); 
Et j'ai ça en résultat:

Code : Tout sélectionner

Warning: Cannot modify header information - headers already sent by (output started at /home.23/b/a/b/babacard/www/news2.php:1) in /home.23/b/a/b/babacard/www/news2.php on line 8
Je note aussi que le même script fonctionne bien avec les accents sur un autre site que j'ai fait!

Merci,
Fred

Posté : 30 mai 2007, 12:28
par jpaul
Bonjour,
Pour utiliser header() sans erreur, il faut ne rien avoir envoyé d'autre avant, pas même un espace ou un changement de ligne.

Je pense que tu es sur la bonne voie. Pour en avoir confirmation, tu peux comparer les codes sources des pages du site qui fonctionne avec celle du sites qui pose problème, tu devrais voir une différence dans la partie HEAD des pages (au niveau du codage des caractères).

Posté : 31 mai 2007, 10:10
par tuperfredd
Merci beaucoup pour ta réponse.

J'ai essayé de comparer les codes, et j'ai même fait un copier coller des codes entiers! Mais j'ai toujours des "?" au lieu des accents. Si je mets une table bidon dans le code, le script m'affiche "aucune entrée" normalement avec l'accent, mais dès que je mets la table correspondant aux news, j'ai ce problème avec les accents. Pour j'ai vérifié et revérifié, les tables et les champs sont du meme format!

Posté : 31 mai 2007, 11:40
par Mingain
utf8_encode(); ?
utf8_decode(); ?

Posté : 31 mai 2007, 15:03
par jpaul
Effectivement,

C'est probablement la base MySql du site qui marche qui utilise un set de caractères différent de celui de la base du site qui ne marche pas. (J'ai répondu un peu vite en te proposant de comparer les entêtes de pages HTML générées).

Je n'ai jamais résolu ce genre de problème avec la piste de Mingain mais c'est à exploiter, il y a de fortes chances pour que tu résolves avec une des deux fonctions qu'il propose.

Autrement, si jamais tu ne t'en sors pas, il faudrait utiliser un outil comme phpMyAdmin pour vérifier le code set employé par le serveur MySql de chaque site.

Posté : 31 mai 2007, 16:39
par Mingain
Remarque j'ai aussi ce problème avec un flux RSS et pourtant je fais bien mon utf8_decode() ...

fichus ? ...