Problème d'accents

Eléphant du PHP | 124 Messages

08 oct. 2006, 10:49

Bonjour,

J'ai un formulaire avec un header text/html; charset=iso-8859-1

j'envoi mon formulaire en ajax à un fichier php qui est aussi en
header('text/html; charset=iso-8859-1') ;

A ce moment si j'affiche la variable que je veux enregistrer dans ma base de données il n'y a pas de problème j'affiche bine les accents sans problème

Mais si j'enregistre dans la base de données alors je me retrouve avec des caractère du type ééééé à la place de ééééé alors que ma base de données est bien en fr-iso-8859-1

savez vous pourquoi ?

mon enregistrement :

<?php
header('text/html; charset=iso-8859-1') ;

$categorie=$_POST['retourreponse'];


include("connexion.php");

// Lecture si la reference existe bien ?

echo $categorie;

$query="INSERT INTO categorie VALUES('','$categorie',1)";
$result=MYSQL_QUERY($query);


MYSQL_CLOSE();
?>

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

08 oct. 2006, 10:57

Il me semble que les envois de données POST par Ajax se passent toujours en UTF-8. Donc si tu veux utiliser de l'iso il faut faire un utf8decode() sur tes données d'entrée dans le script destinataire.

Par contre je dis ça d'expérience, je n'ai pas de confirmation théorique (je ne sais pas par exemple si ça dépend du navigateur).

Eléphant du PHP | 124 Messages

08 oct. 2006, 11:29

Merci ça fonctionne avec IE et Firefox

Il y avait deux erreurs :

le header n'est pas
header('text/html; charset=iso-8859-1') ;
mais
header('Content-Type: text/html; charset=iso-8859-1') ;

et je n'utilisais pas le
utf8_decode()