Bonjour,

J'ai besoin de passer des noms de fichiers avec accents par url, et j'utilise urlencode pour ce faire.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
$url_path = urlencode($path);
$url_file = urlencode($file);
echo "<a href='selectedimage?path=$url_path&amp;file=$url_file'></a>";

J'ai donc un lien qui ressemble à ça, par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
mapage/selectedimage?path=.%2Frepertoire%2Fsousrepertoire&file=B%E9n%E9dict.png
Je décode ensuite simplement avec urldecode :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
$path = urldecode($_GET['path']);
$file = urldecode($_GET['file']);
echo "<img src='$path/$file' alt='image introuvable' />";
ça fonctionne très bien avec Firefox, mais ça ne fonctionne pas avec IE6, IE7, Opera et Konqueror. Je n'en ai pas essayé d'autres.

J'ai essayé avec rawurlencode/rawurldecode et base64_encode/base64_decode. Ca fonctionne toujours très bien avec Firefox et pas du tout avec les autres.

Que dois-je faire pour que tous les navigateurs comprennent ?