par
Berzemus » 15 janv. 2008, 11:16
Bon bon.. je dirais qu'il faut repartir sur des bases saines.. on à un joli cas la..
Le problême actuel, c'est que ta page (le fichier texte dans lequel est enregistré ton code) est probablement encodée en iso (et non pas en utf8). A moins de pouvoir changer cela (avec ton éditeur de texte), tu peux remettre le charset en iso (comme avant).
Théoriquement, plus de problèmes d'accent sur le texte encodé en dur dans le fichier.
Maintenant, ton fichier, ta page est en iso, mais les données dans ta DB en utf8.
Tout revient donc à ce petit bout de code:
echo '<option value="'.$list2["code_m"].'"';
if ($matiere == $list2["code_m"]) echo " SELECTED";
echo '>'.$list2["nom_m"].' </option>';
et plus particulièrement à la dernière ligne (puisque code_m est,j'imagine, numérique).
Les données contenues dans nom_m sont en utf8 (puisqu'elles proviennent de ta db en utf8).
Et je serais plutôt d'avis que simplement ceci:
echo '>'.utf8_decode($list2["nom_m"]).' </option>';
Devrait résoudre tes soucis.
Sinon, et sans utiliser utf8_decode, mettre ceci après que la connexion est établie:
mysql_set_charset("latin1");
Devrait (j'imagine) informer mysql du jeu de caractères utilisé par ton script, et le laisser gérer le transfert.. mais je ne l'ais jamais utilisé.
Bon bon.. je dirais qu'il faut repartir sur des bases saines.. on à un joli cas la..
Le problême actuel, c'est que ta page (le fichier texte dans lequel est enregistré ton code) est probablement encodée en iso (et non pas en utf8). A moins de pouvoir changer cela (avec ton éditeur de texte), tu peux remettre le charset en iso (comme avant).
Théoriquement, plus de problèmes d'accent sur le texte encodé en dur dans le fichier.
Maintenant, ton fichier, ta page est en iso, mais les données dans ta DB en utf8.
Tout revient donc à ce petit bout de code:
[php]echo '<option value="'.$list2["code_m"].'"';
if ($matiere == $list2["code_m"]) echo " SELECTED";
echo '>'.$list2["nom_m"].' </option>'; [/php]
et plus particulièrement à la dernière ligne (puisque code_m est,j'imagine, numérique).
Les données contenues dans nom_m sont en utf8 (puisqu'elles proviennent de ta db en utf8).
Et je serais plutôt d'avis que simplement ceci:
[php]echo '>'.utf8_decode($list2["nom_m"]).' </option>'; [/php]
Devrait résoudre tes soucis.
Sinon, et sans utiliser utf8_decode, mettre ceci après que la connexion est établie:
[php]mysql_set_charset("latin1");[/php]
Devrait (j'imagine) informer mysql du jeu de caractères utilisé par ton script, et le laisser gérer le transfert.. mais je ne l'ais jamais utilisé.