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

  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

  7. #7
    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
    Je veux bien travailler sur un encodage unicode, mais comment faire?

    Le charset de mes pages php sont biens en utf-8, ma base de donnée l'est aussi, je vois pas qu'est ce qu'il faut changer d'autre?

  8. #8
    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
    Vérifie que tes fichiers PHP soient en UTF8en eux-même.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    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
    Cette phrase suffit pour le code php?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <META http-equiv=Content-Type content="text/html; charset=utf-8">
    Et quand a phpmyadmin j'ai ca.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Jeu de caractères pour MySQL:  UTF-8 Unicode (utf8)
    Interclassement pour la connexion MySQL: utf8_unicode_ci
    Et dans le .htaccess j'ai ca.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AddDefaultCharset UTF-8


    Donc niveau unicité de l'encodage ca doit être pas mal normalement non?

  10. #10
    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
    En fait il faudrait que je recommence ma question ^^

    Comment faut il que je rentre mes données dans ma base pour pouvoir par la suite, les afficher sur une page web et en plus faire des select dessus? (sans qu'il y ai de problème d'accent).

    J'espere que tu vois ce que je veux dire?

  11. #11
    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
    Les fichiers en eux memes ont un encodage.
    C'est un paramètre qui est geré par ton editeur de texte ; si tu ne le trouves pas, notepad++ peut te montrer l'information.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #12
    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
    L'encodage de notepad++ est en ANSI... Serait-ce la source du problème tu penses?

  13. #13
    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
    Tu peux convertir depuis notepad++ en UTF8.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  14. #14
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Par défaut
    Dans le menu Langage/Preferences, onglet New Document, choisis l'encodage par défaut qu'auront tes nouveaux fichiers.

    Pour du PHP, choisis "UTF-8 sans BOM" !

  15. #15
    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
    Bon et bien maintenant que j'ai réussi a avoir un résultat plus que satisfaisant et maintenant je suis a la limite de me tirer une balle!

    J'utilise la fonction mail(), mon texte comporte des accents que je traite et tout et tout.

    Mais tous les gestionnaires de boites mail n'utilisent pas le même encodage????

    Je comprends pas sur gmail et hotmail les accents s'affichent très bien mais sur boite réception ovh ca merdouille...

  16. #16
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Par défaut
    Passes-tu un en-tête dans ton mail qui spécifie l'encodage utilisé ?

  17. #17
    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
    Oui, c'est bon. En fait je rentrais mal mes données dans ma base du coup pour les resortir ben c'était plutot caotique...

    Sujet Résolu!!

    Merci beaucoup!!!!


+ 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