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 :

[SQL] Problème d'encodage : les caractères accentués, sont affichés en "?"


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut [SQL] Problème d'encodage : les caractères accentués, sont affichés en "?"
    Bonjour,

    Je suis en train de refaire mon logiciel de gestion de devis, contrat et facture pour mon association.

    J'ai migrés des données de ma base de données d'exploitation (MySQL) vers ma base de développement (MySQL).

    A l'aide de PHP, j'affiche ces données. Le soucie est avec les caractères accentués, j'ai des "?" !

    J'ai spécifié dans mon code PHP la ligne suivante :
    header('Content-Type: text/html; charset=utf-8');

    Par contre, mes données sont encodées en "latin1_swedish_ci".

    Sur certain champs j'ai modifié l'encodage, mais cela ne donne rien.

    Auriez-vous une solution ?

    Merci d'avance

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Généralement c'est qu'il y a effectivement un problème d'encodage,
    IL faut le meme encodage sur toute la chaîne de la migration.
    C'est à dire dans la BDD , dans les éditeurs de texte, dans les entetes html, et selon les cas, dans les requêtes SQL aussi.

    Donc dans un premier temps, vérifie que tu as bien les bons caractères lorsque tu visualises ta bdd dans phpmyadmin. Si c'est le cas, c'est qu'il te faut peut etre utiliser la requete SET NAMES dans ton code d'affichage:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SET NAMES 'utf8'
    SET CHARACTER SET 'utf8'
    Si dans ta BDD, tes caractères sont déjà faussés, c'est qu'il te faut regarder dans l'étape de transition de l'ancienne base vers la nouvelles et là aussi peut etre spécifier des SET NAMES.

  3. #3
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut
    j'ai résolu le problème en spécifiant à l'explorateur que les données sont en latin1 :

    header('Content-Type: text/html; charset=ISO-8859-1');

    Ca fonctionne bien. par contre, il me semble qu'il manque le signe € dans cette encodage...

    la requete SQL données ne fonctionne pas (elle permet bien de passer toute la base en encodage utf8 ?)

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET CHARACTER SET 'utf8'' at line 2

  4. #4
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut
    voici le problème en image (voir PJ)

  5. #5
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut
    Rien à faire !

    Quand je fais propriété de ma page web, elle est bien en UTF-8. Dans le fichier PHP j'ai stipulé "header('Content-Type: text/html; Charset=UTF-8'); "

    Au niveau de ma base de données, ma base est en "utf8_general_ci" et mes tables aussi. Mes colonnes sont aussi en "utf8_general_ci".

    Pour être sur que les données sont bien encodé en UTF-8 j'ai réalisé un drump de la base, éditer le fichier de sauvegarde avec note pad et j'ai réalisé une copie en spécifiant l'encodage en UTF-8. J'ai mis à jour la base... je test... et toujours les "?"

Discussions similaires

  1. les caractères accentués sont remplacés par des caractères chinois
    Par ghyosmik dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 04/12/2008, 22h33
  2. [SQL] Les caractère accentués s'affichent mal après une requête SQL
    Par sayerh dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/03/2008, 11h56
  3. [SQL-Server] ms sql server et php : problème avec les caractères accentués
    Par stephane9422 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 05/12/2005, 17h45
  4. [AJAX] Problèmes avec les caractères accentués
    Par marti dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 26/10/2005, 14h10
  5. Réponses: 5
    Dernier message: 04/09/2005, 12h34

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