Problème d'accents dans l'url

Résolu
Signaler
Messages postés
38
Date d'inscription
dimanche 19 décembre 2004
Statut
Membre
Dernière intervention
1 décembre 2005
-
Messages postés
38
Date d'inscription
dimanche 19 décembre 2004
Statut
Membre
Dernière intervention
1 décembre 2005
-
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!!

7 réponses

Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
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...)
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
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>
Messages postés
38
Date d'inscription
dimanche 19 décembre 2004
Statut
Membre
Dernière intervention
1 décembre 2005

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!
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Hello,



C'est quoi le charset de ta page html ?
Messages postés
38
Date d'inscription
dimanche 19 décembre 2004
Statut
Membre
Dernière intervention
1 décembre 2005

Celui par défaut!! M'enfin, je n'en ai pas défini.
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
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>
Messages postés
38
Date d'inscription
dimanche 19 décembre 2004
Statut
Membre
Dernière intervention
1 décembre 2005

Après un bon p'tit week-end pépère... ça marche

Merci à tous!!