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 :

BdD, substitution, et encodage


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Avatar de ProgVal
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 636
    Par défaut BdD, substitution, et encodage
    Bonjour,

    Je suis face à un problème pour le moins mystérieux...voici le code, simplifé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    // Connexion à mySQL + choix base de données
    mysql_query('SET CHARACTER SET UTF8');
    header('Content-Type: text/html; charset=utf-8');
    $datas=mysql_query("SELECT t_name FROM matable");
    $datas=mysql_fetch_array($datas)
    echo $datas['t_name']; // 2ème
    $datas['t_url_name']=strtr($datas['t_name'], "è", "e");
    echo $datas['t_url_name']; // 2e�me
    J'ai beau changer l'encodage de la page, pas moyen de faire en sorte de virer le caractère bizarre...

    Tous mes fichiers PHP ont été créés en UTF8, sous Linux et avec Quanta+.

    Merci d'avance,
    ProgVal

    EDIT: à la place de&#65533, on voit �

  2. #2
    Membre Expert 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
    Par défaut
    est ce que tu pourrais mettre le fichier PHP en pièce jointe par ce que le code décimal "65533" ne correspond pas au "è" mais au code UTF-8 "caractère illégal"

  3. #3
    Membre très actif
    Avatar de ProgVal
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 636
    Par défaut
    Je ne peux pas être plus précis... Même en regardant le code-source je vois le ?

    Mais lorsque je force l'affichage en ISO-8859-15, j'obtiens ceci: 2ešme (un s avec un accent circonflexe à l'envers)

  4. #4
    Membre Expert 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
    Par défaut
    Citation Envoyé par ProgVal Voir le message
    Je ne peux pas être plus précis...
    tu as remarqué que tu ne répond pas à ce que j'ai marqué ?

  5. #5
    Membre très actif
    Avatar de ProgVal
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 636
    Par défaut
    Ma première pièce jointe sur ce forum ^^


    J'ai mis seulement le début du fichier, parce qu'il est particulièrement long
    Fichiers attachés Fichiers attachés

  6. #6
    Membre Expert 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
    Par défaut
    ah j'ai trouvé, je me suis déjà pris la tête dessus pendant des heures et là je suis de nouveau tombé dans piège

    la fonction "strtr" remplace caractère par caractère et comme le "è" correspond à "è", la fonction va seulement remplacer le "Ã" par "e" et donc au final tu auras "e¨" dans le résultat
    donc pour faire des remplacements utilise plutôt la fonction http://php.net/str_replace

  7. #7
    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
    strtr() ne fonctionne pas en UTF8, dans la documentation il est proposé de decoder, faire le remplacement et recoder.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre très actif
    Avatar de ProgVal
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 636
    Par défaut
    Citation Envoyé par sabotage Voir le message
    strtr() ne fonctionne pas en UTF8, dans la documentation il est proposé de decoder, faire le remplacement et recoder.
    Et on décode/encode comment?

  9. #9
    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
    Comme je te l'ai dit les methodes sont indiquées dans la documentation.
    Mais bon a moins d'être amoureux de la fonction, regarde ce que t'a proposé nosferapti.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Par défaut
    Vois en remplaçant SET CHARACTER SET UTF8 par SET NAMES UTF8 si y'a pas un progrès.

    Sans conviction

  11. #11
    Membre très actif
    Avatar de ProgVal
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 636
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Mais bon a moins d'être amoureux de la fonction, regarde ce que t'a proposé nosferapti.
    C'est pas ça, mais un array avec une cinquantaine de caractères, je suis pas très chaud...

    Citation Envoyé par Petibidon Voir le message
    Vois en remplaçant SET CHARACTER SET UTF8 par SET NAMES UTF8 si y'a pas un progrès.

    Sans conviction
    Euh?

  12. #12
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    Citation Envoyé par sabotage Voir le message
    strtr() ne fonctionne pas en UTF8, dans la documentation il est proposé de decoder, faire le remplacement et recoder.
    +10

    ProgVal, Un lien très intéressant pou toi http://g-rossolini.developpez.com/tu...concepts#LVI-G

Discussions similaires

  1. [MySQL] Encodage VARCHAR bdd
    Par Pymento dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/09/2009, 09h21
  2. [MySQL] encodage lors d'une insertion dans une BDD Mysql
    Par Halex78 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 07/11/2008, 13h54
  3. [Débutant] Application d'encodage BdD Access
    Par Enzototo dans le forum VBA Access
    Réponses: 5
    Dernier message: 05/11/2008, 18h14
  4. [DOM] vider une liste déroulante et encodage sur bdd
    Par comcom94 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 04/11/2008, 09h25
  5. Encodage de la Bdd chez Free
    Par jlb59 dans le forum Free
    Réponses: 0
    Dernier message: 22/11/2007, 08h55

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