Salut je suis sur la derniere partie de la creation d'un site et le seul probleme qu'il me reste à gerer est l'encodage.

1- Au fait, j'ai une page d'administration du site et de là bas j'atoute des elements à la base de données MySQL.

Après l'ajout (là où le problème commence), les caractères un peu speciaux(é, ê, è, à ...) se transforment.

2- Quand je remplie les champs directement alors c'est la page qui le contenu des champs qui transforment les caracteres speciaux

NB: Ma base de données et mes champs utilisent l'encodage "utf8_general_ci" et les pages du site l'encodage "utf-8 sans BOM"

2 réponses


Ça fait quoi comme type de caractères quand tu met un é par exemple? Car ça peut aider à savoir si c'est un problème d'encodage quand tu récupéres les infos de la BDD, donc là faut forcer le passage en UTF-8 avec une option dans PDO ($dbh->exec("SET CHARACTER SET utf8");) ou MySQL (mysql_query("SET NAMES 'utf8'");)

Sinon c'est par exemple que tu n'utilises pas le même encodage entre ta BDD et tes pages, pour tes pages tu peux mettre un header (header('Content-Type: text/html; charset=utf-8');) ou direct dans l'HTML avec (<meta http-equiv="Content-type" content="text/html; charset=utf-8" /> ou <meta charset="UTF-8">) pour être sur que ta page sera perçut comme de l'UTF8

Au niveau des pages ca va maintenant. Mais le seul souci est les caractères accentuées dans la base de données.