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 :

Affichage de lettres accentuées [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 5
    Par défaut Affichage de lettres accentuées
    Bonjour à tous,

    Je galère bcp avec les lettres accentuées.

    Voilà le pb :
    - pour inscrire dans la base MySQL, pas de souci
    - Pour afficher les textes sur le web, pas de souci
    - en revanche, quand je veux changer un champ, je le fais éditer par défaut dans un input du type :

    <td><input type="text" name="adresse" size=50 value=<?php echo "'" . htmlentities($donnees[5], ENT_QUOTES) . "'" ;?></td>

    Alors ça semble compliqué mais c'est le seul moyen que j'ai trouvé pour qu'il affiche tous les termes (et pas seulement le premier...) et les apostrophes.

    Mais il affiche des éé par exemple pour éé !! Alors que sur la base c'est écrit correctement...

    Je précise : je suis partout en utf-8 (html, bdd, éditeur). J'ai des $req=$bdd->query("SET NAMES 'utf8'") ;
    partout, je galère vraiment.... J'ai regardé sur les forum mais sans résultat.

    Merci bcp s'il y en a qui ont une idée...

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 5
    Par défaut Précision
    Je précise en fait que les éléments d'affichage semblent contradictoires :

    - soit j'utilise "html_entity_decode", alors les lettres accentuées s'affichent bien MAIS il n'affiche que le premier terme,
    - soit j'utilise "htmlentities" qui affiche bien toute la chaîne mais pas les lettrs accentuées...

    Y-a-t'il une instruction qui marche pour tout ??

    Merci,

    Citation Envoyé par solal31 Voir le message
    Bonjour à tous,

    Je galère bcp avec les lettres accentuées.

    Voilà le pb :
    - pour inscrire dans la base MySQL, pas de souci
    - Pour afficher les textes sur le web, pas de souci
    - en revanche, quand je veux changer un champ, je le fais éditer par défaut dans un input du type :

    <td><input type="text" name="adresse" size=50 value=<?php echo "'" . htmlentities($donnees[5], ENT_QUOTES) . "'" ;?></td>

    Alors ça semble compliqué mais c'est le seul moyen que j'ai trouvé pour qu'il affiche tous les termes (et pas seulement le premier...) et les apostrophes.

    Mais il affiche des éé par exemple pour éé !! Alors que sur la base c'est écrit correctement...

    Je précise : je suis partout en utf-8 (html, bdd, éditeur). J'ai des $req=$bdd->query("SET NAMES 'utf8'") ;
    partout, je galère vraiment.... J'ai regardé sur les forum mais sans résultat.

    Merci bcp s'il y en a qui ont une idée...

  3. #3
    Membre émérite Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2010
    Messages : 573
    Par défaut
    parce que la fonction htmlentities() prend un troisième paramètre charset qui par défaut est ISO-8859-1, précise utf-8 dans ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    htmlentities($donnees[5], ENT_QUOTES,'utf-8')
    c'est dans la doc :
    http://php.net/manual/fr/function.htmlentities.php

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 416
    Par défaut
    Et puis utilises plutôt htmlspecialchars en utf-8 parce que c'est suffisant et surtout parce que tu n'auras pas besoin de spécifier le second paramètre pour indiquer l'encodage (qui est identique en ISO et en utf-8 pour cette fonction contrairement à htmlentities).

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 5
    Par défaut
    Citation Envoyé par vorace Voir le message
    parce que la fonction htmlentities() prend un troisième paramètre charset qui par défaut est ISO-8859-1, précise utf-8 dans ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    htmlentities($donnees[5], ENT_QUOTES,'utf-8')
    c'est dans la doc :
    http://php.net/manual/fr/function.htmlentities.php
    Salut !

    Merci beaucoup ça marche enfin !!

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 5
    Par défaut
    Citation Envoyé par ABCIWEB Voir le message
    Et puis utilises plutôt htmlspecialchars en utf-8 parce que c'est suffisant et surtout parce que tu n'auras pas besoin de spécifier le second paramètre pour indiquer l'encodage (qui est identique en ISO et en utf-8 pour cette fonction contrairement à htmlentities).
    Merci de ta réponse.

    Malheureusement j'avais essayé mais cette fonction ne marche pas...

    En fait cela s'arrête non pas comme je l'ai dit au premier terme mais à l'apostrophe... C'est lui qui pose problème... A moins qu'il y a une option aussi ?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 5
    Par défaut
    Citation Envoyé par solal31 Voir le message
    Merci de ta réponse.

    Malheureusement j'avais essayé mais cette fonction ne marche pas...

    En fait cela s'arrête non pas comme je l'ai dit au premier terme mais à l'apostrophe... C'est lui qui pose problème... A moins qu'il y a une option aussi ?
    Au temps pour moi, oui ça marche bien avec l'option 'ENT_QUOTES'

    Merci à tous !!

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

Discussions similaires

  1. [ZF 1.7] Mauvais affichage des lettres accentuées
    Par CinePhil dans le forum Zend Framework
    Réponses: 13
    Dernier message: 29/04/2010, 16h03
  2. [ZF 1.7] [Zend_Pdf] Affichage des lettres accentuées
    Par BeatGrinder dans le forum Autres composants
    Réponses: 7
    Dernier message: 08/09/2009, 09h33
  3. Réponses: 6
    Dernier message: 12/12/2006, 11h27
  4. HashCode avec lettres accentuées...
    Par Kineas dans le forum C++
    Réponses: 4
    Dernier message: 08/04/2005, 10h54
  5. Comment entrer des lettres accentuées sous postgresql ?
    Par Chihuahua dans le forum Requêtes
    Réponses: 11
    Dernier message: 28/08/2003, 08h04

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