Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/10/2007, 09h52   #1
Membre actif
 
Homme Arnaud
Inscription : décembre 2006
Messages : 871
Détails du profil
Informations personnelles :
Nom : Homme Arnaud
Âge : 27
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : décembre 2006
Messages : 871
Points : 195
Points : 195
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
__________________
www.SonolightDj.com
Prestataire sonorisation et lumière
arnaudperfect est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2007, 10h32   #2
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
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 :
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.
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2007, 10h37   #3
Membre actif
 
Homme Arnaud
Inscription : décembre 2006
Messages : 871
Détails du profil
Informations personnelles :
Nom : Homme Arnaud
Âge : 27
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : décembre 2006
Messages : 871
Points : 195
Points : 195
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 ?)

Citation:
#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
__________________
www.SonolightDj.com
Prestataire sonorisation et lumière
arnaudperfect est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2007, 13h39   #4
Membre actif
 
Homme Arnaud
Inscription : décembre 2006
Messages : 871
Détails du profil
Informations personnelles :
Nom : Homme Arnaud
Âge : 27
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : décembre 2006
Messages : 871
Points : 195
Points : 195
voici le problème en image (voir PJ)
__________________
www.SonolightDj.com
Prestataire sonorisation et lumière
arnaudperfect est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2007, 14h57   #5
Membre actif
 
Homme Arnaud
Inscription : décembre 2006
Messages : 871
Détails du profil
Informations personnelles :
Nom : Homme Arnaud
Âge : 27
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : décembre 2006
Messages : 871
Points : 195
Points : 195
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 "?"
__________________
www.SonolightDj.com
Prestataire sonorisation et lumière
arnaudperfect est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h22.


 
 
 
 
Partenaires

Hébergement Web