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

HTML Discussion :

gestion des caractères accentués


Sujet :

HTML

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 100
    Points : 65
    Points
    65
    Par défaut gestion des caractères accentués
    bon jour à tous

    Je transforme un site en .html en .php avec une petite gestion de contenu dyamique dans ces nouvelles pages.

    Je m'arrache les cheveux pour afficher correctement les accents dans mes pages .php ou bien quand je les récupère de ma base de données.

    Quelqu'un peut-il m'expliquer la différence entre ces deux types :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    et
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    J'ai du mal a bien expliquer mon soucis. pour info, la table mysql est codée en utf8_unicode_ci.

    Quand les accents sont bien affichés à l'écran, dans ma base, j'ai des hiéroglyphes ou inversement...

    Bonn app en attendant
    pascal

  2. #2
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    déjà je te recommande d'utiliser UTF-8 avec cet encodage tu peux utiliser tous les caractères possibles donc ça te simplifiera la vie

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 100
    Points : 65
    Points
    65
    Par défaut
    Merci pour l'indication néanmoins, cela ne solutionne pas mon soucis !

    Je continue à chercher le pb c'est que je ne sais pas ce que je dois chercher

  4. #4
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 747
    Points
    3 747
    Par défaut
    Bonjour,

    Citation Envoyé par grassel Voir le message
    Quelqu'un peut-il m'expliquer la différence entre ces deux types :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    et
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    Une très grande différence, il suffit de chercher utf-8 et iso-8859-1

    Pour une meilleure gestion des caractères accentués, je te conseil plutôt de choisir un charset utf-8.

    Il faut vérifier que tout soit en utf-8 :
    - L'en-tête HTTP envoyé par le serveur,
    - L'encodage au niveau de l'éditeur,
    - Le Content-type au niveau du document (X)HTML,
    - L'encodage au niveau de la BDD,
    - Le paramètre AddDefaultCharset au niveau de la config de ton serveur Apache.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 100
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par Macmillenium Voir le message

    Il faut vérifier que tout soit en utf-8 :
    - L'en-tête HTTP envoyé par le serveur,
    - L'encodage au niveau de l'éditeur,
    - Le Content-type au niveau du document (X)HTML,
    - L'encodage au niveau de la BDD,
    - Le paramètre AddDefaultCharset au niveau de la config de ton serveur Apache.
    Oui j'ai trouvé déjà pas mal de doc. Il doit y avoir des éléments"contradictoires" parmi ce que tu ennonces ci-dessus. J'y regarde de plus près.

    Merci pour la piste
    pascal

  6. #6
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Citation Envoyé par grassel Voir le message
    Il doit y avoir des éléments"contradictoires" parmi ce que tu ennonces ci-dessus.
    Pas que je sache, ils sont tous complémentaires (sauf peut-être la config Apache qui est identique à ce que renvoie l'entête HTTP du serveur).

  7. #7
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Points : 3 747
    Points
    3 747
    Par défaut
    Sachant que l'en-tête HTTP est toujours prioritaire.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 100
    Points : 65
    Points
    65
    Par défaut
    voilà ce que j'ai pu récolter comme infos :

    chacune de mes pages contiennent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    ma table mysql est définie ainsi:
    Lorsque j'affiche "Invité" via une page via mon navigateur j'obtiens un afficahge correct (encodage UTF-8)

    Lorsque j'affiche chaque champs de ma table directement via mysql j'obtiens ceci (encodage : UTF-8 également) : Activités

    J'ai trouvé ceci ds un tuto :
    Si la page affiche des caractères de ce type : "é", "î", "Ã", ...
    => Les données ont été enregistrées au format UTF-8, et le navigateur les affiche en pensant avoir affaire à de l'ISO.
    C'est ici que je ne comprends pas : pourquoi ISO alors que lorsque je fais information sur la page l'encodage est bien UTF-8 (voir pièce jointe)

    Voilà je livre ceci à votre réflexion, je suis dépassé mais c'est normal compte tenu de mon niveau

  9. #9
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Il y a plein de choses que tu n'as pas encore modifié pour que ça fonctionne en UTF-8, quand on reprend le post de Macmillenium :

    - L'en-tête HTTP envoyé par le serveur,
    - L'encodage au niveau de l'éditeur,
    - Le Content-type au niveau du document (X)HTML,
    - L'encodage au niveau de la BDD,
    - Le paramètre AddDefaultCharset au niveau de la config de ton serveur Apache.
    Je rajouterai même en plus, la précision de l'encodage MySQL au moment de la connexion à la BDD.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 100
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par Bisûnûrs Voir le message
    Il y a plein de choses que tu n'as pas encore modifié pour que ça fonctionne en UTF-8, quand on reprend le post de Macmillenium :
    Je rajouterai même en plus, la précision de l'encodage MySQL au moment de la connexion à la BDD.
    Je ne le sais que trop bien. Malheureusement, je n'ai pas l'ombre d'une idée sur ce qu'il faudrait faire :
    - L'en-tête HTTP envoyé par le serveur,
    - L'encodage au niveau de l'éditeur,
    - Le Content-type au niveau du document (X)HTML,
    - L'encodage au niveau de la BDD,
    - Le paramètre AddDefaultCharset au niveau de la config de ton serveur Apache.
    Pour ce qui concerne la config de Apache, mon hébergement étant sur serveur mutualisé, je supppose qu'il est impossible d'y toucher

    Pour les l'en-tête HTTP envoyée par le serveur et l'encodage au niveau de l'éditeur : j'avoue honteusement ne pas savoir de quoi il retourne....

    Non sincèrement, je n'ai pas l'habitude de laisser tomber mais là ! je ne sais absolument pas ce qu'il faut faire. Sans un sérieux coup de pouce de votre part, je ne pourrai pas aller plus loin.

    Merci de toute façon, j'ai déjà appris bien des choses.

    PS. Onverra demain, la nuit sera peut-être bonne conseillère.

  11. #11
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Pour ta configuration Apache, elle peut se faire aussi au niveau d'un .htaccess à la racine de ton site avec cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AddDefaultCharset utf-8
    Pour l'encodage au niveau de l'éditeur, sur une grande majorité tu peux choisir l'encodage de ton fichier à l'enregistrement. Si ce n'est pas le cas, je te conseille d'en changer. Par exemple, sur Notepad++, tu peux choisir l'encodage de ton fichier en faisant Format > Encoder en UTF-8 (sans BOM).

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 100
    Points : 65
    Points
    65
    Par défaut
    bon jour à tous

    voilà, je fais le point :

    le problème que je cherche à résoudre :
    Lorsque j'affiche le contenu d'un champs de table mysql qui contient Invité via mon navigateur j'obtiens un affichage correct
    Lorsque je visualise le contenu de cette table directement via phpMyAdmin j'obtiens ceci : Activités

    Voici ce que j'ai testé ou effectué sur vos conseil :
    - encodage éditeur : UTF-8 sans BOM
    - AddDefaultCharset utf-8 ajouté dans .htaccess en racine du site
    - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> pour chacune de mes pages
    - utf8_unicode_ci pour définir ma table mysql en question

    Le pb est toujours présent

    Est ce que je comprends mal vos conseils ? Il est vrai que la consultation directe grâce à PhpMyAdmin est basique, sans mise en forme (je peux me contenter du défaut) mais, je cherche simplement à comprendre pourquoi l'affichage est ainsi.

  13. #13
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Citation Envoyé par Bisûnûrs Voir le message
    Je rajouterai même en plus, la précision de l'encodage MySQL au moment de la connexion à la BDD.


    A savoir que si le texte déjà présent dans ta BDD a été inséré avec un mauvais encodage, tu ne le verras pas correctement avec phpMyAdmin tant que tu ne l'as pas réinséré correctement.

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 100
    Points : 65
    Points
    65
    Par défaut
    ci-joint exemple de données récentes insérées ds BDD ==> toujours même pb

    Précision qui a sans doute son importance (je viens de m'en apercevoir) :

    le titre de la page qui s'affiche dans l'onglet du navigateur est orthographié avec des accents type hiéroglyphe alors que le contenu de la page lui est affiché normalement

    ....pfffff....!

    NB le é de décroissant de PhpMyAdmin est correct alors que le é de activité est olé olé ===> pb réglé : erreur dans la page cause sans doute au changement de charset

  15. #15
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    A savoir, que pour créer un site entièrement en UTF-8, ce n'est pas une mince affaire, surtout si tu as déjà plein de données en ISO dans ta BDD. En clair, ce n'est pas si facile et il fallait le prévoir dès le début.

    Si tu commences à peine et que tu as peu de données dans ta BDD je te conseille de les supprimer et de les réinsérer comme il faut.

    Et puis, as-tu bien pris en compte :
    Je rajouterai même en plus, la précision de l'encodage MySQL au moment de la connexion à la BDD.


    A savoir, que juste après le choix de ta BDD dans ton script PHP, tu dois exécuter la requête :
    Quant à ton titre, regarde dans ton fichier, il doit être mal écrit après ton passage en UTF-8 (sans BOM).

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 100
    Points : 65
    Points
    65
    Par défaut
    j'ai modifié mon code comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      define ('DB_TBL', 'jcb_users') ; // définit la table utilisée pour le logon  
      
      $connection = mysql_connect($db_host, $db_user, $db_pass) or die(mysql_error());
      mysql_select_db($db_nom, $connection) or die(mysql_error());
      mysql_query("SET NAMES, 'utf8'");
    
     return $connection ;
    il s'agit d'une fonction appelée avant chaque requête : c'est bien ce que tu attendais ?

    mais pas de changement

  17. #17
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Me souviens pas avoir mis une virgule. Tu dois avoir une belle erreur MySQL là.

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 100
    Points : 65
    Points
    65
    Par défaut
    exact pas d'erreur car j'avais corrigé. Je cherche en même temps ailleurs pour mieux comprendre ce que tu me dis ....

    exécution du code sans pb ====> pas de changement

    Si je comprends :
    SET NAMES 'xxx' indique au serveur dans quel codage seront expédiés les éléments qui suivent ?

    Si c'est ainsi pour quelle raison les traduit-il en autre chose ?

  19. #19
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    De quelle manière insères-tu tes données ?

    D'où proviennent les données affichées qui posent problème ?

    Comment sont tes données en BDD ?

    Mais en gros, SET NAMES "x" sert à ça, oui.

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 100
    Points : 65
    Points
    65
    Par défaut
    Je pense avoir largement dépassé mon seuil d'incompétence.

    Merci pour ta patience et la manière dont tu essayes de me guider.

    Une dernière chose, si tu veux bien, ci-dessoous image de ma table "user" construite sur les mêmes bases que celle qui pose pb.

    Tu peux voir que ici, l'affichage des caractères accentués ne posent pas de soucis et ce avant toutes les manip que nous avons tentées.

    As tu un commentaire concernant ceci ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Gestion des caractères accentués
    Par vandeyy dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 16/04/2014, 14h03
  2. [AJAX] Gestion des caractères accentués
    Par GérardMartinelli dans le forum AJAX
    Réponses: 2
    Dernier message: 05/04/2014, 12h59
  3. Réponses: 1
    Dernier message: 17/10/2006, 04h39
  4. Chaînes avec des caractères accentués dans Interbase
    Par François Marliac dans le forum Bases de données
    Réponses: 2
    Dernier message: 04/03/2004, 22h39
  5. insérer des caractères accentués INFORMIX/JDBC
    Par donde dans le forum Informix
    Réponses: 2
    Dernier message: 19/11/2002, 20h02

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