Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2132 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Problème d'encodage PDO/Mysql/PHP

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème d'encodage PDO/Mysql/PHP

n°2106652
lofo7
Posté le 17-10-2011 à 00:38:05  profilanswer
 

Hello,
j'ai un problème d'encodage que je ne comprends pas.
Chaque colonne de mes tables de ma BDD mysql sont en "utf8_general_ci". Sur ma page PHP, j'utilise également le charset=UTF-8 mais quand j'affiche mes pages, les caractères accentués s'affiche mal.
En revanche, quand ma page PHP a un charset=ISO-8859-1, tout s'affiche comme il faut.
 
Dernier point : quand je veux insérer des données dans ma BDD, si j'utilise ($mysql->exec('SET NAMES utf8');, l'insertion pour chaque champ s'arrête au premier caractère accentué rencontré, et si je ne mets pas d'instruction d'encodage, tout se passe bien.
 
Comment cela se fait-il ?
 
Merci

mood
Publicité
Posté le 17-10-2011 à 00:38:05  profilanswer
 

n°2106654
lofo7
Posté le 17-10-2011 à 01:34:38  profilanswer
 

Je viens de régler à moitié mon problème. Lorsqu'à la connexion je mets, $connexion->exec('SET NAMES utf8');, les caractères s'affichent convenablement. En revanche, lorsque j'utilise la même instruction d'encodage pour l'insertion de données dans la BDD, ça bug ! Bizarre...


Message édité par lofo7 le 17-10-2011 à 01:36:34
n°2106672
Tirkyth
Posté le 17-10-2011 à 10:26:39  profilanswer
 

En général, pour ne pas avoir de problèmes avec l'utf-8, il faut ces trois éléments réunis :
- Tables et champs de la base de données en utf8_*. Pour toi ça a l'air bon.
- Connexion à la base en utf-8. Pour toi ça a l'air bon puisque tu exécutes une requête SET NAMES.
- Encodage des fichiers en utf-8. Il faut que tes fichiers de code soient bien encodés en utf-8. Là, ça dépend de ce que tu utilises comme éditeur de texte ou IDE. Je te laisse vérifier que ton éditeur est bien configuré pour encoder tes fichiers en utf-8, et remettre l'attribut charset="UTF-8" dans ton code.


Message édité par Tirkyth le 17-10-2011 à 10:27:18

---------------
Mon Feedback !
n°2106704
lofo7
Posté le 17-10-2011 à 13:41:59  profilanswer
 

Absolument tout est en UTF-8 mais rien n'y fait.
 
Quand je souhaite insérer des éléments dans la BDD avec SET NAMES, l'insertion pour chaque champ s'arrête au premier caractère accentué rencontré et sans SET NAMES, tout marche.
 
A l'inverse, quand je souhaite sélectionner des éléments de la BDD avec SET NAMES, ça marche nickel et sans SET NAMES, ça ne m'affiche pas certains caractères accentués.
 
Donc, ce que je fais maintenant, c'est d'utiliser SET NAMES juste pour le SELECT et ça marche bien mais je trouve quand même ça bizarre.

n°2106708
lofo7
Posté le 17-10-2011 à 14:01:03  profilanswer
 

Je viens de comprendre le problème.Les caractères que j'insérais n'étaient pas en utf8.
 
J'avais créé il y a quelques années des centaines de pages HTML (je n'utilisais pas de BDD à l'époque) avec un charset=ISO-8859-1.
Voulant récupérer toutes ces données aujourd'hui, je voulais les mettre dans une BDD mais pas une par une (trop long). C'est pour cela que j'ai créé un script qui lit les pages et qui ajoute champ par champ mes données.
 
Tout était en UTF-8 sauf les pages html que j'essayais de lire, voilà pourquoi ça bugait.
 
Merci de ta réponse Tirkyth !

n°2221242
gravityres​et
Posté le 02-03-2014 à 18:04:54  profilanswer
 

lofo7 a écrit :

Je viens de comprendre le problème.Les caractères que j'insérais n'étaient pas en utf8.
 
J'avais créé il y a quelques années des centaines de pages HTML (je n'utilisais pas de BDD à l'époque) avec un charset=ISO-8859-1.
Voulant récupérer toutes ces données aujourd'hui, je voulais les mettre dans une BDD mais pas une par une (trop long). C'est pour cela que j'ai créé un script qui lit les pages et qui ajoute champ par champ mes données.
 
Tout était en UTF-8 sauf les pages html que j'essayais de lire, voilà pourquoi ça bugait.
 
Merci de ta réponse Tirkyth !


Comment as tu réussi a resoudre ton probleme? Merci


---------------
j'aime programmer mais je sais pas pourquoi... http://lucas.zietek.fr/

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Problème d'encodage PDO/Mysql/PHP

 

Sujets relatifs
[PHP/MYSQL]Commands out of Syncprobleme avec PHIDGETS
Problème script awk !! =/Problème avec formulaire en PHP
Probleme de remplissage dynamique d'un JTableProbleme Session / popup et redirection
[PHP/MYSQL] comment connaitre la valeur d'un id autoincrement 
Plus de sujets relatifs à : Problème d'encodage PDO/Mysql/PHP


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR