8797 sujets

Développement web côté serveur, CMS

Salut a tous !

bonne nouvelle, j'ai des soucis avec l'encodage !


Toutes mes tables, Ma base de données, Les champs sont en utf8_unicode_ci

J'ai une méta utf8 , mais le problème se passe lors de l'insertion via un formulaire d'ajout.

quand je met directement mon accent via phpmyadmin y'a aucun probleme, mais j'ajoute un produit via le formulaire y'a des caractere pourries, et JAI MEME :
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")


de l'aide ? Smiley smile merci d'avance a ceux qui m'aideront! Smiley confused
Bonjour,
essaye un AddDefaultCharset Off dans un .htaccess pour apache qu'il comprenne qu'il utilise l'encodage que tu as spécifié et non celui par défaut.

et met ceci dans ton code PHP pour que php utilise l'utf8

header('Content-Type: text/html; charset=UTF-8');

sinon j'ai pas d'autre idée pour l'instant
JuseN a écrit :
Oui bien sur qu'il le sont. en utf8 SANS BOM convertie avec notepad++


la page de ton formulaire aussi?
Bonjour,

Bonjour JuseN,

j'ai traîné ce problème quelques semaines et ne l'ai résolu qu'hier.
Tout mon site et ma BD MySQL étaient bien en UTF-8 mais des messages (par echo) sortaient en signes cabalistiques.
Dans ma page purement PHP, mes messages d'erreur ou information étaient bien en UTF8 mais considérés comme au format ISO-8859-1 par le navigateur ou par PHP ? A ma grande surprise, c'est un utf8_decode( ) qui a résolu ces problèmes d'affichage A noter que UFB8_encode() doublait les erreurs : il faut bien ramener le codage en ISO-8859-1 pour que ça passe !
Noter aussi qu'avec les losanges noirs et ? au centre, c'est l'inverse et il faut utiliser justement encode.
Exemples dans mon cas :
$ms2=utf8_decode("Adhérent ");
$ms3=utf8_decode(" absent avec ce n° carte");
$ms4=utf8_decode("Suppression réussie pour l'adhérent ");
Bon courage ---> RJL2730
JuseN a écrit :
Oui bien sur qu'il le sont. en utf8 SANS BOM convertie avec notepad++


C'est précisément la conversion qui provoque ce genre de problème. Je crois qu'il faut aller au menu Encodage et mettre Encoder en UTF-8(Sans BOM) et non pas convertir en utf8 sans bom.