Salut à tous,

J'ai un petit problème au niveau de l'affichage des "éèà" ect..
Je ne comprend pas du tout d'où viens le problèmes, mes tables sont toutes en utf8_unicode_ci, ma page news.php ( ou est la source du soucis ) est aussi en utf8, alors que sur une autre page tout s'affiche correctement, voici mes deux pages :

La première qui beug : (news.php)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 STRICT//EN" "http://www.w3.org/TR/xhtml1/DTDxhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:kang="fr" lang="fr">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>B</title>
    <link rel="stylesheet" type="text/css" href="style.css" /> 
</head>
<body>
<div id="barre">
    <div class="barrel">Pseudo : <input type="text"/> Mot de passe : <input type="password" /> Mot de passe oublié ?</div>
    <div class="barrer"><a href="#">Inscription</a></div>
</div>
<div id="menu">
    <ul>
        <li><a href="index.php">Accueil</a></li>
        <li><a href="news.php">News</a></li>
        <li><a href="#">Profils</a></li>
        <li class="right"><a href="#">Contact</a></li>
    </ul>
</div>
<div style="clear: left;"></div>
<div id="haut_conteneur"></div>

<div id="content_conteneur">

    <div id="contenu">

        <div id="haut_contenu">Fresh News !</div>
        <div id="content_contenu">
            <?php

                    require "config.php";
                    mysql_connect(DB_HOST, DB_LOGIN, DB_PASS);
                    mysql_select_db(DB_BDD);

                    $sql="SELECT * FROM news ORDER BY id DESC";
                    $req= mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
                    while($data=mysql_fetch_assoc($req)){
                        echo "<h1>{$data"titre"]}</h1>";
                        echo "<p>{$data"contenu"]}</p>";
                        echo "<span align=\"left\">".date("j/n/Y G:i",strtotime($data"date"]))."</span>";
                    }

            ?>
        </div>
        <div id="bas_contenu"></div>

    </div>

    <div id="haut_nav"></div>
    <div id="contenu_nav">
        Pub
    </div>
    <div id="bas_nav"></div>

</div>
<div id="bas_conteneur"></div>
</body>
</html>

Et la seconde qui fonctionne : (admin/index.php)

<?php
    require"../config.php";
    mysql_connect(DB_HOST, DB_LOGIN, DB_PASS);
    mysql_select_db(DB_BDD);

    $sql="SELECT * FROM news";
    $req= mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    while($data=mysql_fetch_assoc($req)){
        echo "<p>{$data"titre"]}";
        echo " - <a href=\"modif.php?id={$data"id"]}\">Modifier cette news</a>";
        echo " - <a href=\"suppr.php?id={$data"id"]}\">x</a>";
        echo "</p>";
    }
?>

Si vous avez une idée n'hésitez pas à proposer :)
Merci :D

4 réponses


Grafikart
Réponse acceptée

Et ta connection mysql est en iso selon moi, juste après le mysql_select_db met un bon gros

mysql_query('SET NAMES "UTF8"');

Salut,

ton encodage général devrait être en iso-8859-1 pour ce qui concerne les pages écrites en dur.
ensuite, ton appel a la base devrais générer les chaine de caractère en UTF-8 par defaut.

je sais que ca marche comme ca pour un site que j'ai fais.

En espérant t'avoir aidé.

6borg.

Babou
Auteur

@6borg: J'ai toujours fonctionné avec mon système et jusque là ça marchais, le poste de Graf' m'a aidé mais merci de ta participation :D

@Grafikart: Merci, ca marche beaucoup mieux ! Cependant j'ai trouvé un autre problème HTML/CSS. Dois-je refaire un poste ou je peux l'expliquer ici ?

Merci à vous deux :)

Recrée un post, je verouille celui là. (Comme ça si quelqu'un retombe sur le sujet il verra direct la solution :)