Pb d'encodage uft8

Par Frank Hélin, il y a 10 ans


Base de données MySQL

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

serval154, il y a 10 ans

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

Frank Hélin, il y a 10 ans

C'est exactement ce que je fais.

serval154, il y a 10 ans

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"

Frank Hélin, il y a 10 ans

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

serval154, il y a 10 ans

ô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).

otakodes, il y a 10 ans

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.

Frank Hélin, il y a 10 ans

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

JMERISE, il y a 10 ans

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

Frank Hélin, il y a 10 ans

C'est fait.