IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Probleme Encodage UTF-8 [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 64
    Par défaut Probleme Encodage UTF-8
    Salut,

    Petit problème récurant mais même sur le forum je trouve pas de solution!

    Voila quand je rentre des données dans ma base de donnée je le rentre sous la forme suivante par exemple: évènement -> évènement
    (trouver cette encodage sur ce site : site

    Ensuite quand je veux faire un select a partir de cette valeur je fais un utf8-decode() mais la arrive le probleme! C'est qu'il décode pas de la même façon!

    pour reprendre mon exemple, Evènement il va me le decoder Evènement .

    Donc voila comment je pourrais encoder tout ca en utf8 et pouvoir le réutiliser?

    Merci beaucoup.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Pour convertir vers UTF8 faut utiliser utf8_encode() et non pas le faire à la main.
    Pour que les données soient correctement prises en charge par mysql, il peut être utile de déclarer l'encodage avec la requête
    La meilleure solution est toutefois de travailler avec un seul encodage.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 64
    Par défaut
    Comment il marche ce set name? Je fais mon code normal avec les accents partout et au moment de lancer ma requete il va se charger de tout encoder ou bien il faut que je continu avec mes é ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    &acute c'est une entité HTML ce n'est pas de l'UTF8.

    SET NAMES n'encode rien, elle dit juste à Mysql qu'il va recevoir de données dans un encodage et qu'il doit lui même fournir les données dans cet encodage.
    C'est utile quand l'encodage par défaut de la base est différent de celui des pages PHP.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 64
    Par défaut
    Donc si je veux mettre quelque chose dans ma base faut que je fasse comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $sql = "insert into maBase (`champs1`, `champs2`, `champs3`) values
    ('utf8-encode(\" éèê \")', 'utf8-encode(\" à \")', 'utf8-encode(\" ô \")' )";
    mysql_query(SET NAMES 'UTF8');
    $req = mysql_query($sql) or die....;
    Si j'ai bien compris ca doit ressembler a ca?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Plutot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql = utf8_encode("insert into maBase (`champs1`, `champs2`, `champs3`) values
    ('éèê', 'à', 'ô')");
    Mais je repete il est plus sérieux de travailler sur un encodage unique.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme d'encodage UTF-8
    Par student_ dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 28/11/2010, 14h23
  2. Probleme d'includes ( encodage utf-8 )
    Par antoine974 dans le forum Langage
    Réponses: 3
    Dernier message: 10/04/2009, 14h55
  3. probleme encodage Byte[] en UTF-8
    Par hduchesn dans le forum Langage
    Réponses: 2
    Dernier message: 20/06/2008, 15h27
  4. Pb Encodage UTF-8 pour Ooo
    Par Sylvain James dans le forum XMLRAD
    Réponses: 10
    Dernier message: 08/03/2006, 22h28
  5. [WebForms] Encodage, UTF-8 et accents
    Par alexischmit dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 28/04/2004, 12h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo