Problème de charset...
Résolu
Bonjour,
J'ai un souci de charset sûrement très basique pour ceux qui s'y connaissent mais que je n'arrive absolument pas à résoudre :
Je récupère des infos dans ma bdd (qui est en utf8_general_ci) depuis un script php (enregistré au format utf8) et auxquelles j'ai ajouté un utf8-decode avant affichage, mais rien à faire, tous les accents sortent en "?"
Quelqu'un a une idée d'où peut venir le problème ?
Pour info il s'agit d'un script appelé par une requête json, le format n'est pas déclaré comme avec un fichier html (dois-je le faire ?)
Merci d'avance pour votre aide, ça me pose un énorme problème !! :-)
J'ai un souci de charset sûrement très basique pour ceux qui s'y connaissent mais que je n'arrive absolument pas à résoudre :
Je récupère des infos dans ma bdd (qui est en utf8_general_ci) depuis un script php (enregistré au format utf8) et auxquelles j'ai ajouté un utf8-decode avant affichage, mais rien à faire, tous les accents sortent en "?"
Quelqu'un a une idée d'où peut venir le problème ?
Pour info il s'agit d'un script appelé par une requête json, le format n'est pas déclaré comme avec un fichier html (dois-je le faire ?)
Merci d'avance pour votre aide, ça me pose un énorme problème !! :-)
4 réponses
-
ModérateurBonjour
Comment as tu code la connexion à ta bdd ?
As tu essayé de forcer le header en utf8 (voir la fonction header de php)
-
pr ma bdd, j'ai un fichier config avec
define("DB_HOST", "mon serveur");
define("DB_NAME", "ma bdd");
define("DB_USER", "user");
define('DB_PASSWORD', 'pwd');
et voici mon code
$db = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PASSWORD);
$query = "SELEC * FROM themes_member tm
WHE iduser = $iduser";
if ($q = $db -> query($query))
{
while($data = $q->fetch(\PDO::FETCH_ASSOC))
{
$packs[] = $data;
}
}
if (count($packs) > 0) { return ($packs); } else { return false; }
Pour le header, je n'ai rien fait de spécial, non, je regarde ça de suite :-) -
-
J'ai aussi essayé ça, mais ça n'a pas l'air d'être la bonne façon de l'écrire, ça me renvoie
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2019] Unknown character set' in /web/subset/extension/functions.php:51 Stack trace: #0 /web/subset/extension/functions.php(51): PDO->__construct('mysql:host=sql1...', 'V@0-8tTus') #1 /web/subset/extension/bget_user_infos.php(48): get_packs('423') #2 {main} thrown in /web/subset/extension/functions.php on line 51
avec cette correction :$db = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME.';charset=utf8,'.DB_USER, DB_PASSWORD);
Désolée, je ne connais rien en PDO... -
-
-