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 :

Charactère œ dans mysql mais � in php [MySQL]


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 Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Par défaut Charactère œ dans mysql mais � in php
    Bonjour,

    Je suppose que la question a déjà été posée 10 000 fois, mais toutes les réponses que j'ai pu lire ne solutionnent pas mon problème.

    J'ai un champ varchar dans ma base qui est encodé en utf8_general_ci.
    Dans ce champ, le nom d'une ville qui contient le caractère "œ" => Annœullin.

    Quand je récupère la valeur de ce champ, impossible de récupérer le bon nom de la ville, soit c'est Annullin, soit c'est Ann�ullin. Bref, je ne vois pas trop comment faire.

    Voici les différents essais que j'ai pu faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    echo htmlentities($line["city_name"], ENT_QUOTES, 'UTF-8'); // résultat : rien
    echo $line["city_name"]; // résultat : Ann�ullin
    echo iconv('iso-8859-15', 'utf8', $line["city_name"]); // résultat : Annullin
    echo html_entity_decode(iconv('iso-8859-15', 'utf8', $line["city_name"])); // résultat : Annullin
    echo utf8_decode($line["city_name"]); // résultat : Ann?ullin
    echo html_entity_decode($line["city_name"]); // résultat : Ann�ullin
    Note : le "& # 65533;" dans mes commentaires est en fait un � en affichage sur mon écran.
    Auriez vous une piste supplémentaire pour m'aider à afficher correctement la valeur de ce champ ?

    Merci d'avance.

  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
    utf8_general_ci n'est pas un encodage mais un interclassement : ça ne concerne que la façon dont sont triées et comparées les données.

    Y'a t'il des entités html dans ton contenu ?
    Si non, toutes tes fonctions "html" ne servent à rien.

    Est-ce qu'il n'y a que le caractère "œ" qui te pose problème ?
    Est-ce que "é" fonctionne par exemple ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Par défaut
    alors les fonctions html ne servent à rien (mais je me devais de les essayer )

    Au niveau des données remontées, je n'ai pas de problème avec les accents "classiques".
    J'ai bien un problème d'affichage pour le "ô", mais c'est avant traitement, et dès que j'applique la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    iconv('iso-8859-15', 'utf8', $line["city_name"]);
    le "ô" est bien affiché.
    A priori, pas de soucis non plus pour les ö ou autre type d'accent.

    Non, visiblement, le soucis vient des ligatures (c'est bien ça le terme ?) (et peut-être d'autres caractères spéciaux, mais auquel cas, je ne les pas encore identifié)

  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
    Si tu travailles avec un seul encodage, tu n'auras pas besoin de conversion et tu ne devrais pas avoir ce problème :
    http://j-willette.developpez.com/tut...n-site-en-utf8
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Par défaut
    Mon soft (Coda 2) encode bien en UTF-8.
    Je viens de rajouter, juste après ma connexion à la base :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_set_charset( 'utf8' );
    Mais cela ne change rien.

    J'ai bien le méta dans le <head> de la page, et j'ai également le header php au tout début de mon code...

    On n'a pas idée de nommer des villes comme ça aussi...

  6. #6
    Membre éclairé Avatar de Piolet
    Inscrit en
    Février 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 469
    Par défaut
    à priori, cela pourrait suffire à mon bonheur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $test = str_replace(chr(156), 'œ', $line["cit_name"]);

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

Discussions similaires

  1. [MySQL] requête fonctionne sur mysql mais pas en php
    Par clanou01 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/07/2011, 15h49
  2. mysql mais pas avec PHP
    Par billyrose dans le forum Langage
    Réponses: 7
    Dernier message: 09/07/2009, 22h23
  3. Syntaxe correcte dans phpmyadmin mais incorrecte en php
    Par Shinoda00 dans le forum Requêtes
    Réponses: 1
    Dernier message: 07/07/2009, 16h56
  4. [FLASH MX2004] Balises HTML dans mysql et PHP
    Par Garra dans le forum Flash
    Réponses: 3
    Dernier message: 06/04/2006, 11h46

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