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 :

problème d'accents éô


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2016
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2016
    Messages : 65
    Points : 53
    Points
    53
    Par défaut problème d'accents éô
    message récupéré sur le net mais j'ai exactement le même problème et je n'ai pas compris les réponses :-(
    un petit exemple me suffirait
    merci d'avance!

    J'ai un problème qui dépasse ma compréhension avec htmlentities et UTF-8.

    - Je suis sous PHP 5.4.11
    - J'ai une table MySQL avec un interclassement "utf8_general_ci" contenant une colonne TEXT avec un interclassement "utf8_general_ci", elle contient des caractères accentués français.
    - Ma page HTML a un meta spécifiant UTF-8,
    - quand j'utilise htmlentities je spécifie le charset UTF-8

    Bref je suis UTF-8 du sol au plafond.

    Pourtant, htmlentities s'acharne à ne pas comprendre mes données contenant éàèù etc, et à me retourner une string vide ou des caractères pourris selon que j'utilise les flags ENT_SUBSTITUTE, ENT_IGNORE etc etc (par exemple en ENT_SUBSTITUTE un "é" est rendu comme "�" )

    Comment se fait-il que htmlentities bute sur de bêtes accents qui devraient passer sans problème ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<option value='".$row["imm_id"]."'>".$row["nomsite"]."</option>";
    j'ai modifié par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<option value='".$row["imm_id"]."'>".htmlentitie($row["nomsite"],ENT_QUOTES,"utf-8")."</option>";
    la valeur contenant des accents est invisible - j'ai testé avec toutes les valeurs autres que ENT_QUOTES - ça ne marche pas,

    toutes mes pages ont ce code au début
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Content-Type: text/html; charset=UTF-8'); /*obligatoire sur chaque page*/
    ma base, mes tables et tous mes champs sont en utf-8,

    bref!!! je ne trouve pas la solution
    merci

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Bref je suis UTF-8 du sol au plafond.
    L'interclassement n'agit pas sur les données.
    Par contre il faut que le fichier lui même soit encodé en UTF8 et que la connexion à la base de données soit en UTF8.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2016
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2016
    Messages : 65
    Points : 53
    Points
    53
    Par défaut
    bonjour sabotage,
    je pense avoir trouvé la solution en intercalant mysqli_query($link,'SET NAMES utf8'); dans mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
            $link=mysqli_connect("localhost","root","","GPi_Web");
    	mysqli_query($link,'SET NAMES utf8');
            $res = mysqli_query($link, 'SELECT utilisat_id, prenom, nom FROM 1tbl_utilisat ORDER BY prenom ASC');
            while($row = mysqli_fetch_assoc($res)){
                     echo "<option if($donnees['monrespons'] == '".$row["utilisat_id"]."') {selected="selected";} value='".$row["utilisat_id"]."'>".$row["prenom"]." ".$row["nom"]."</option>";
             }
             mysqli_free_result($res); //libérer le résultat de $res
             mysqli_close($link); //déconnexion avec la base         
    ?>
    cdlt

  4. #4
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Salut,
    au lieu de mysqli_query($link,'SET NAMES utf8'); la manière conseillée est mysqli_set_charset($link, 'utf8');cf la doc http://php.net/manual/fr/mysqli.set-charset.php , la dernière note
    Le bienfait n'est jamais perdu

  5. #5
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2016
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2016
    Messages : 65
    Points : 53
    Points
    53
    Par défaut
    Citation Envoyé par Willy_k Voir le message
    Salut,
    au lieu de mysqli_query($link,'SET NAMES utf8'); la manière conseillée est mysqli_set_charset($link, 'utf8');cf la doc http://php.net/manual/fr/mysqli.set-charset.php , la dernière note
    ok, merci Willy_k

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

Discussions similaires

  1. petit problème d'accent
    Par No_SenS dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 11/04/2005, 13h10
  2. Problèmes d'accent avec une connexion ODBC et ADO
    Par michael.jacques dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/03/2005, 15h36
  3. Réponses: 3
    Dernier message: 25/02/2005, 20h46
  4. [XSLT] application d une xslt et problème d'accents
    Par lanfeust23 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 26/07/2004, 13h08
  5. Problème avec accents et CHARACTER SET ISO8859_1
    Par kinda dans le forum InterBase
    Réponses: 13
    Dernier message: 30/10/2003, 15h49

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