Bonjour,

J'ai créé un formulaire html dont les données sont traitées par un script PHP avec requête sql afin d'éditer simplement une bdd.
Le problème est que les caractères spéciaux ne sont pas correctement encodé dans la bdd. Exemple : Si j'entre le mot Côte dans un champs input, il devient Côte dans la bdd.

Une idée ?

Merci.

9 réponses


Bonjour,

Si tu te connectes avec PDO, tu peux ajouter un paramètre à ta connexion .

exemple :
Ta base s'appelle articles,
ton host est localhost,
ton nom user est 'root',
et ton mot de passe '1234'

connexion db:
$pdo = new PDO('mysql:dbname=articles; host=localhost; charset=utf8', 'root', '1234');

J'ajoute charset=utf8 à la liste de mes paramètres. Lorsque je fais cela je n'ai plus de problème d'encodage avec avec mes requêtes INSERT ou SELECT.

Vérifie aussi l'encodage de tes tables sous MySQL.

bye

C'est exactement ce que je fais.

autre suggestion:

Vérifie si la section default_charset = "UTF-8" est décommentée dans ton fichier php.ini

; PHP's default character set is set to empty.
; http://php.net/default-charset
default_charset = "UTF-8"

Aïe, je ne pense pas avoir accès au php.ini chez mon hébergeurcar je n'ai pas de serveur dédié.

ôtes moi d'un doute.

Sur quelle configuration travailles tu ? Wamp, Xamp ou autre ?
Si c'est le cas à tu se problème en localhost ou lorsque tu publies ton site chez ton hébergeur (en mutualisé je suppose).

tes fichers sont-il en utf-8 sans bom ? Le problème peut venir de là aussi parfois quand tu passe tes fichiers via filezilla il merde un peu si ce n'st pas un fichier en utf-8 sans bom.

J'utilise un formulaire en ligne pour construire une bdd. Comment vérifier bom ou pas ?

il faut mettre le charset=utf8 dans la connexion a la bdd

C'est fait.