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 :

Différence d'affichage des caractères accentués


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de tintin72
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 663
    Par défaut Différence d'affichage des caractères accentués
    Bonjour,

    Sur ma page php j'ai meta balise suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
    Mais quelque chose m'échappe.
    Lorsqu'un texte est récupéré dans la base de données (MySQL) les caractères accentués sont correctement affichés. Par contre si j'écris "en dur" dans la page php, les caractères accentués sont remplacés par des symboles bizarres.
    Je sais que si je code les caractères accentués (&eacute; etc) tout fonctionne.
    Ce que je comprends pas c'est pourquoi les caractères accentués récupérés dans la bdd
    s'affiche bien et pas ceux écrit directement sur la page.

    Quelqu'un pourrait-il m'éclairer ?

    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
    Par défaut
    Si les caractères saisis dans ton fichier s'affichent mal c'est surement que ton fichier n'utilise pas l'encodage ISO.
    Verifie le dans ton editeur de texte (notepad++ le fait si tu ne trouves pas dans le tiens).
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé Avatar de tintin72
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 663
    Par défaut
    En effet, Vim me dit que le fichier est encodé en utf-8.
    Il faut donc que je remplace iso-8859-1 par utf-8 ou alors que
    je réencode le fichier en iso-8859-1.
    Mais est ce que le latin1_swedish_ci utilisé par MySQL correspond à utf-8 ?
    (car dans ce cas convertir le fichier en iso-8859-1 ne serait pas une bonne idée).

  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
    Il faut donc que je remplace iso-8859-1 par utf-8 ou alors que
    je réencode le fichier en iso-8859-1.
    Si tu as tout le reste de ton site en ISO, il faut evidemment convertir le vilain canard en ISO.

    Mais est ce que le latin1_swedish_ci utilisé par MySQL correspond à utf-8 ?
    latin1_swedish_ci est un interclassement pour travailler avec des données ISO.
    Les interclassements UTF8 comment par ... utf8.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé Avatar de tintin72
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 663
    Par défaut
    Si tu as tout le reste de ton site en ISO, il faut evidemment convertir le vilain canard en ISO.
    Ben non justement mais ça met le doigt sur un aspect du problème auquel je n'avais pas pensé.
    Par défaut les fichiers créés (avec Vim en tout cas) sont encodés en utf-8, et latin1_swedish_ci est utilisé par défaut lors de la création de tables.
    Est ce que ça ne risque pas de poser problème si je récupère des données latin1_swedish_ci pour les afficher sur une page en utf-8 ?

  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
    latin1_swedish_ci n'est pas un encodage de données, c'est un paramètre définissant la manière de classer et comparer les données.

    Par contre oui cela pose un problème : si tu envoie une donnée UTF8 à mysql en lui demandant de comparer selon l'interclassement latin1, il te dira naturellement qu'il ne peut pas.

    C'est pour cela qu'il faut se décider sur un encodage dés le début de son developpement et l'utiliser partout (encodage des fichiers, enctype HTML, interclassement des tables).

    Si un des élements ne peut pas être changé, il faut jongler avec des utf8_encode/decode.

    Dans ton cas je ne pense pas que ce soit trop tard pour harmoniser.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. [MySQL] Affichage des caractères accentués
    Par philippe57460 dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 30/06/2008, 14h33
  2. [Tableaux] Affichage des caractères accentués
    Par kate59 dans le forum Langage
    Réponses: 2
    Dernier message: 06/02/2008, 20h34
  3. Problème d'affichage des caractères accentués
    Par Neuromancien2 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 07/07/2007, 13h43
  4. Affichage des caractères accentués
    Par ChPr dans le forum Langage
    Réponses: 11
    Dernier message: 14/05/2007, 09h51
  5. Problème d'affichage des caractères accentués
    Par ostaquet dans le forum JBuilder
    Réponses: 1
    Dernier message: 10/03/2005, 06h58

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