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 :

Problème de charset avant l'envoi dans la BDD [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Par défaut Problème de charset avant l'envoi dans la BDD
    Salut a tous,

    j'ai un petit soucis.
    J'ai une page qui récupert des info sur un fichier XML externe. Je récupert les donnée et les envoies sur ma BDD.

    Cependant j'ai un problème quand je fait afficher ma requette j'obtient des truc comme ca:

    INSERT INTO bddamazonfr (`Prix`,`ASIN`,`Titre`) VALUES ('55.06','B0006FOOJM',Tokyo Godfathers - Édition Collector Limitée 2 DVD [inclus le storyboard de 650 pages, 10 cartes postales collector et 1 dessin original créé et dédicaçé par Satoshi Kon]) ;
    Ce qui a pour effet de ne pas executer la requette.

    Que me conseillez vous de faire?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2005
    Messages : 147
    Par défaut
    salut,

    quel est l'encodage de ton fichier xml ?
    quel est l'encodage de ta base ?
    quel est l'encodage de tes pages ?
    quel est l'encodage des entêtes d'apache ?

  3. #3
    Membre éprouvé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Par défaut
    OUlala je pourrais pas tout te dire.

    Donc mes pages sont en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    header('Content-Type: text/html; charset=ISO-8859-1');
    ma BDD est en utf8 et la page XML d'amazon est en UTF-8

    par contre je ne vois pas ce qu'est l'encodage des entêtes d'apache ?

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2005
    Messages : 147
    Par défaut
    >par contre je ne vois pas ce qu'est l'encodage des entêtes d'apache ?

    apache envoie des entêtes au nav pour qu'il sache à quel charset il a affaire (visible avec affichage -> encodage des caractères sous firefox).

    mais si tu mets...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    header('Content-Type: text/html; charset=ISO-8859-1');
    ...ça devient l'entête d'apache, donc les caractère envoyés au navigateur seront pris pour de l'iso.

    après dans un site il vaut mieux que l'encodage soit uniforme, t'as pas d'autres problèmes d'affichages ?

    en gros bascule le traitement php en utf8 pour être synchro avec ta base (vois les modules mbstring vu qu'il travail par défaut en iso), ou change le charset de ta base en iso et converti le flux xml en iso (utf8_decode ou via iconv si t'as un fichier, sans oublier le remplacement de la balise xml qui spécifie l'encodage si c'est le cas).

    sinon après ta connection essaies ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysql_query("SET NAME UTF8");
    "ça force mysql à travailler les requêtes en utf8."
    ça peut résoudre ton problème, mais tous les caractères spéciaux qui sortiront de la base seront mal affichés (c'est le minimum des problèmes à prévoir).

  5. #5
    Membre éprouvé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Par défaut
    En mettant la page en utf8 ca fait toujours pareil. De toute manière je n'ai aucun problème de ce genre ailleurs. (je crois que cet iso est compatible avec l'utf8). Je pense que le problème viens de la lecture du fichier XML.

    Rajouter mysql_query("SET NAME UTF8"); ne change rien non plus.

    La page XML est sur un autre site, comment je fait pour modifier son charset avant de la lire?

  6. #6
    Membre éprouvé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Par défaut
    C'est bon j'ai essayer avec un utf8 decode ca marche niquel.

    Mais je comprend pas, sur ma bdd je n'ai pas de iso. Juste utf8, latin ...

    Je crois me souvenir que je n'avais pas chois cet iso et l'utf8. Je me souviens que j'avais des problème quand je mettais l'entete en utf8.

    Enfin, tant que ca marche c'est l'essentiel...

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2005
    Messages : 147
    Par défaut
    >En mettant la page en utf8 ca fait toujours pareil. De toute manière je n'ai aucun problème de ce genre ailleurs. (je crois que c'est iso est compatible avec l'utf8). Je pense que le problème viens de la lecture du fichier XML.

    tu as sans doute raison

    pour changer l'encodage :

    http://fr3.php.net/manual/fr/function.utf8-decode.php

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

Discussions similaires

  1. [MySQL] Formulaire php qui renvoie une erreur a l'envoie dans la bdd
    Par Varghos dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 20/04/2014, 11h15
  2. [Débutant] Réserver un numéro avant l'enregistrement dans la BDD
    Par ahmedige dans le forum VB.NET
    Réponses: 4
    Dernier message: 16/09/2011, 17h11
  3. [PHP 5.0] formulaire oui non pour envoie dans une bdd
    Par micker dans le forum Langage
    Réponses: 5
    Dernier message: 10/03/2011, 15h56
  4. traitement des données avant envoie dans MySQL
    Par italiasky dans le forum SQL Procédural
    Réponses: 13
    Dernier message: 07/02/2006, 22h50
  5. [Socket] Attente avant l'envoi ?
    Par Invité dans le forum C++
    Réponses: 1
    Dernier message: 21/09/2005, 18h59

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