galère encodage (ma bête noire)
Bonjour,
Je suis actuellement en train de développer un petit module sous la forme de quelques pages php (avec mon fidèle notepad++). Ces pages s'intègrent dans notre site Internet développé par un prestataire.
En gros, les utilisateurs devront y déclarer leurs chiffres chaque mois.
Aussi, dans mon formulaire de déclaration, j'ai une liste déroulante (issue d'une fonction dans un fichier inclus fonctions.php, cf code ci-dessous) de 13 items (blanc par défaut + les 12 mois). Une fois le formulaire validé, il est représenté pour relecture, les champs sont les mêmes (liste déroulante pour les mois, donc).
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
function ListeMois($lemois){
$lesmois=array("","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"); //j'ai fait exprès de mettre tantôt les accentués en html, tantôt en dur pour tester
$listemois = '<select id="fmois" name="fmois" onchange="change(this.select)">';
foreach($lesmois as $valeur){
if ($lemois==$valeur) {
$listemois .= '<option value="'.$valeur.'" selected="selected">'.$valeur.'</option>';
}
else {
$listemois .= '<option value="'.$valeur.'">'.$valeur.'</option>';
}
}
$listemois .= '</select>';
return $listemois;
} |
Le problème, c'est que les mois avec accents (transmis en post) ne sont pas remis dans la liste :(
Pour cause, si je fais un echo de la variable, j'ai un beau "Février" :(
Donc un énième souci d'encodage...
Sachant que :
- mon prestataire m'a recommandé d'encoder mes pages php en iso-8859-1 (charset du serveur)
- que le header (fourni par le prestataire) présente les pages en utf-8 (qui est donc l'encodage appelé par défaut par le navigateur)
- que la base de données mysql est en utf8, interclassement latin_swedish_ci (mais là je ne fais même pas appel à la db pour cette liste... j'ai aussi des galères avec les valeurs en base mais ce sera un autre topic si je ne m'en sors pas :/)
[edit] : précision, les mois sont TOUS bien écrits dans la liste déroulante (que ce soit février ou août dans l'array)
Que puis-je tester pour arriver à mes fins (à part mettre mes mois sans accents ^^)
Merci d'avance pour vos lumières,
Bill