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

Langage PHP Discussion :

affichage des caracteres speciaux UTF-8 php


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Février 2011
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 137
    Points : 40
    Points
    40
    Par défaut affichage des caracteres speciaux UTF-8 php
    Salut tous,
    Pour provoquer l'affichage des caractéres speciaux en html j'ai mis la ligne de code suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    Et ça marche Sauf que dans mon code php integré, j'ai des resultats retournés a partir de la base de données dont l'affichage est mal presenté avec ce �, et quand j'elimine cette ligne de code ça marche bien pour les rez bd et le contraire dans mon code html
    existe t il une autre ligne de code que je dois mettre?
    Merci bien

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    Assures-toi bien d'être cohérente sur tout la ligne au nouveau des encodages :
    Base : UTF-8
    Scripts PHP : UTF-8
    XHTML charset : UTF-8
    Si un des encodages diffère, tu vas te retrouver avec des caractères exotiques.
    Il semblerait que ta base soit encodée en ISO 8859-1 et pas en UTF-8

  3. #3
    Membre du Club
    Inscrit en
    Février 2011
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 137
    Points : 40
    Points
    40
    Par défaut
    Comment je peut connaitre l'encodage de ma base de données et de le modifier?
    je travaille sous phpmyadmin

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Un
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CHARSET(USER());
    devrait suffire
    Sinon quand tu regardes les propriétés de tes tables sous phpmyadmin, tu devrais le voir aussi

    Enfin il t'est possible de vérifier à partir de la table système de mysql :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT default_character_set_name FROM information_schema.SCHEMATA S
    WHERE schema_name = "schemaname";

  5. #5
    Membre du Club
    Inscrit en
    Février 2011
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 137
    Points : 40
    Points
    40
    Par défaut
    ok j'ai executé la premiere req et ça ma retourné utf8,
    Pour resoudre mon prob qu'est ce je dois ecrire pour changer et faire un affich correcte
    Merci pour votre aide

  6. #6
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Tu peux paramétrer la connexion avec : mysql_set_charset()

  7. #7
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 460
    Points : 5 824
    Points
    5 824
    Billets dans le blog
    1
    Par défaut
    Ce que je fais d'habitude :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    header('Content-Type: text/html; charset=utf-8');
    // déclarer la bdd en utf-8
    mysql_query("SET NAMES 'utf8'");
    ?>
    et aussi encoder le fichier en utf-8 sans BOM (je sais pas ce que ça veut dire, mais qu'il faut le faire...)

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    Il est possible que les caractères insérés dans la bdd proviennent d'un formulaire

    Peu tu nous donner le code inséré dans la bdd stp ?

    sinon utf_encode utf8_decode etc....

  9. #9
    Membre du Club
    Inscrit en
    Février 2011
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 137
    Points : 40
    Points
    40
    Par défaut
    c'est plutt extraction de la base, le contenu de mes table contien des (é,è...), dans l'affichage ils sont remplacés par �
    voila mmon code php integré dans le XHTML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    while($s=$salo->fetch())
    {
    echo "<div class=my-contacts fleft id=contact-1> <p class=contact-company mgLeft-7 fleft>".$s['EV_NAME_FR']."</p><img class=contact-img fleft src=../userImage/".$s['EV_IMAGE']." /><br>".$s['EV_DESC_FR']."</div>  <a href=detailSalon.php?idS=".$s['EVENT_ID'].">visiter</a> <br>";
    $part=Salon::participated($s['EVENT_ID'],$user->id);
    if ($part)
    echo "<a href=#>Vous etes participé</a><br><br><br>";
    else
    echo "<a href=participer-salon.php?idS=".$s['EVENT_ID'].">Participer</a><br><br><br>";
    }
    ?>

  10. #10
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 460
    Points : 5 824
    Points
    5 824
    Billets dans le blog
    1
    Par défaut
    Tiens pour passer en utf-8 une table déjà existante (comme dans ton cas) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE `nom_de_la_table`  DEFAULT CHARACTER SET utf8 COLLATE utf8_bin

  11. #11
    Membre du Club
    Inscrit en
    Février 2011
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 137
    Points : 40
    Points
    40
    Par défaut
    non resOlu encore ça m'affiche �

  12. #12
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    vérifie bien que tous les fichiers qui voient passer les résultats sont en utf-8,

    et sinon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    header( 'content-type: text/html; charset=UTF-8' );
    tout en haut du fichier php ( mais pour moi, le problème reste ) ce n'est que pour débugger un mini pb de l'appli

  13. #13
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 460
    Points : 5 824
    Points
    5 824
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    Ce que je fais d'habitude :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    header('Content-Type: text/html; charset=utf-8');
    // déclarer la bdd en utf-8
    mysql_query("SET NAMES 'utf8'");
    ?>
    et aussi encoder le fichier en utf-8 sans BOM (je sais pas ce que ça veut dire, mais qu'il faut le faire...)

  14. #14
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    désolé,

    pour être sur tu as aussi essayé utf8_encode($s['EVENT_ID']) ?

    ou utf8_decode($s['EVENT_ID']) ?


    et aussi quel est ton éditeur de code ? à tu changé de conf dans php.ini, cad une mise à jour etc

  15. #15
    Membre du Club
    Inscrit en
    Février 2011
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 137
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par ascito Voir le message
    désolé,

    pour être sur tu as aussi essayé utf8_encode($s['EVENT_ID']) ?

    ou utf8_decode($s['EVENT_ID']) ?
    est ce que je devrait a chaq fois que je recupere une valeur de ma base faire recourt à cette fonction? je cherche une seule ligne de code qui me regle tous!

  16. #16
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    cela fonctionne ou pas ? car cela permet de savoir d'où vient le problème en fait


    ce n'est pas parce que tu pose

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header( 'content-type: text/html; charset=UTF-8' );
    que le fichier est pur utf-8,cad

    j'utilise komodo edit(free), il faut que je vérifie le type du fichier, et je n'ai plus besoin de spécifier cette ligne, qui est vraiment destiné au débug

    le choix d'un éditeur de code est important !

    tu peu utiliser un fichier utilisant ISO, déclarer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header( 'content-type: text/html; charset=UTF-8' );
    dedans, tu te retrouvera avec des caractères bizars

  17. #17
    Membre du Club
    Inscrit en
    Février 2011
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 137
    Points : 40
    Points
    40
    Par défaut
    Non ça change rien sauf a la place de � ça sera ? simple

  18. #18
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 460
    Points : 5 824
    Points
    5 824
    Billets dans le blog
    1
    Par défaut
    et tes fichiers sont bien encodés en utf-8 sans BOM ? (Moi, je le fais avec Notepad++).

  19. #19
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    screenShot de la bdd avec contenu + screenShot -> test simple page html qui intègre une requête sur la bdd avec affichage

  20. #20
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20

Discussions similaires

  1. [AJAX] Corriger affichage des CARACTERES SPECIAUX
    Par olbouss dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/07/2008, 15h56
  2. Réponses: 3
    Dernier message: 24/04/2006, 15h53
  3. [CharSet]Affichage des caractères Japonais
    Par screamX dans le forum Général Java
    Réponses: 5
    Dernier message: 15/11/2005, 18h32
  4. Réponses: 11
    Dernier message: 25/09/2005, 21h20
  5. [Encodage] codage des caractères spéciaux
    Par soulhouf dans le forum Général Java
    Réponses: 11
    Dernier message: 24/08/2005, 12h07

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