Bonjour,

toutes mes pages XHTML strict 1.0 sont encodés en UTF-8, mon editeur de texte est PSPad et ne ne rencontre aucun soucis avec l'affichage sur les différents navigateurs.

ma base de données MySQL a été créé en choisissant UTF8-Unicode . Et chaque table est automatiquement créée avec ce même codage.

Comment se fait-il que toute donnée accentuée que je modifie dans PhpMyAdmin me donne des ? dans mes pages finale XHTML et qu'inversement, toute les données saisies dans les formulaires me donne des caractères mal encodés sous Mysql. Ces mêmes caractères s'affichent correctement sur le site par la suite.

C'est très embettant dans le seul et unique cas où je décide de faire des correction par l'intermédiaire de Phpmyadmin, ce qui fait gagner bcp de temps...

Voyez vous une explication ?

Edit : sur phpmyadmin quand je regarde l'encodage de la page il est indiqué également UTF8-Unicode, tout comme pour mes propres pages.
Modifié par gonzo (25 Oct 2006 - 16:51)
C'est vraiment superbe, merci bcp de ton aide.

Il faut donc ajouter avant toutes séries de commandes SQL :
SET NAMES 'UTF8'


j'ai donc changé toutes les fonctions query comme suit :


function sql_query($requete){
        
        global $connexion;

        mysql_query("SET NAMES 'UTF8' "); // <-- LA LIGNE AJOUTEE
        $resultat = mysql_query($requete);

        if ($resultat)
                return $resultat;
        else {
                echo "<b>Erreur dans l'execution de la requete.</b><br />";
                if(EN_TEST)
                      echo "<b>Message de MySQL :</b> ". mysql_error($connexion) ."<br />\n Requete : <br /><pre>".$requete."</pre><br>\n";
                exit();
        }
}

Modifié par gonzo (25 Oct 2006 - 18:52)
En réalité, tu n'as pas besoin de rajouter cela avant toute série de commandes, mais plutôt juste après la première connexion que tu effectues dans ton script PHP.

Edit : Soit dit en passant, je pense que tu peux mettre le sujet en résolu.
Modifié par Eldebaran (26 Oct 2006 - 00:10)