Problème d'accents dans l'url

Résolu
d_alma Messages postés 38 Date d'inscription dimanche 19 décembre 2004 Statut Membre Dernière intervention 1 décembre 2005 - 29 juil. 2005 à 09:43
d_alma Messages postés 38 Date d'inscription dimanche 19 décembre 2004 Statut Membre Dernière intervention 1 décembre 2005 - 1 août 2005 à 11:25
Bonjour,



Je suis en train de programmer une 'photothèque'. Les photos sont sur
un serveur FTP. Les répertoires ont souvent un nom comportant un accent
et je ne veux pas utiliser la solution de facilité qui consisterait à
les remplacer par les caractères 'classiques'.



Voici une partie du code qui permet la navigation entre répertoire (avec des fleches 'précédent'/'suivant'):



// AvtApres récupère le nom du repertoire suivant le repertoire courant


$rep_sui=AvtApres('Apres');

$rep_suiNom=htmlentities($rep_sui);

$rep_sui=utf8_decode(urlencode($rep_sui));


echo '
';


echo '[index.php?ChgtRep='.$rep_sui.'&Position='.$positionRep.' '

echo ']';



Quand je fais un affichage de $rep_suiv j'obtiens bien les 'é' transformés en %E9



Mais quand je récupère l'adresse:

if (isset ($_GET['ChgtRep']) && $_GET['ChgtRep']!='')


$_GET['ChgtRep']=urldecode($_GET['ChgtRep']);



Les '%E9' sont retransformés en petits carrés (c'est plutôt joli mais bon....)



Si j'utilise

utf8_encode(urlencode($rep_sui]));

et

utf8_decode(urldecode($_GET['ChgtRep']));

Les '%E9' sont retransformés en ? et la lettre suivante est supprimée.



Je ne sais plus quoi faire, alors toute idée sera la bienvenue



Merci!!
A voir également:

7 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
29 juil. 2005 à 11:19
Alors commence par definir le bon, pour la france. Apres on verra si ca fonctionne mieux ou non.

Tu peux aussi utiliser htmlentities () (utile pour ceux qui ne gerent pas le charset justement...)
3
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 9
29 juil. 2005 à 09:54
Salut,



pourquoi ne pas utiliser un simple urlencode() pour afficher l'url puis un url_decode() ensuite ?

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
d_alma Messages postés 38 Date d'inscription dimanche 19 décembre 2004 Statut Membre Dernière intervention 1 décembre 2005
29 juil. 2005 à 10:44
Oups, jme suis plantée en copiant mon script!!

En fait, je fait bien un urlencode() puis un urldecode(). Mais ça ne fonctionne pas. J'en ai marre de ces petits carrés.



En faisant un formulaire puis en utilisant des str_replace j'arrive un
peu près au résultat souhaité, mais il doit y avoir une autre solution,
nan??



Merci!
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
29 juil. 2005 à 10:50
Hello,



C'est quoi le charset de ta page html ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
d_alma Messages postés 38 Date d'inscription dimanche 19 décembre 2004 Statut Membre Dernière intervention 1 décembre 2005
29 juil. 2005 à 11:11
Celui par défaut!! M'enfin, je n'en ai pas défini.
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 9
29 juil. 2005 à 14:25
heu et si tu fais un base64_encode() et base64_decode ?

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
d_alma Messages postés 38 Date d'inscription dimanche 19 décembre 2004 Statut Membre Dernière intervention 1 décembre 2005
1 août 2005 à 11:25
Après un bon p'tit week-end pépère... ça marche

Merci à tous!!
0