Bonjour,
J'affiche dans une page un lien vers un fichier pdf dont le nom contient des caractères accentués (mécanisme.pdf par exemple).
Lorsqu'on clique sur le lien, le fichier doit normalement s'ouvrir dans une autre fenêtre du navigateur.
Mais à cause des caractères, le fichier n'est pas trouvé.
Voici le déroulement :
Récupération du nom du fichier dans la base de données via un script php
Ce nom est récupéré via ajax puis affiché sur la page
Le code ajax :
Voici les différents essais et leurs résultats, en fonction du code dans le script php (le code ajax reste identique) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 function affiche_connecte(divlogin, divconnecte, divmessage, divpage) { getXhr(); xhr.onreadystatechange = function() { if(xhr.readyState == 4 && xhr.status == 200) { response = xhr.responseText; divconnecte.innerHTML = response; if (response == '') { divmessage.innerHTML = 'Une erreur est survenue.'; return false; } else { divlogin.style.display = 'none'; divconnecte.style.display = ''; divmessage.innerHTML = ''; affiche_accueil(divpage); return true; } } } xhr.open("POST","Commun/menu.php",true); xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=iso-8859-15'); xhr.send(""); }
- echo $nom_guide;
- Lorsqu'on passe la souris sur le lien, il apparaît correctement dans la barre de statut.
- Dans le fichier source, le caractère "é" est codé "%C3%A9".
- En cliquant sur le lien, le nom du fichier s'affiche correctement dans la barre d'adresse du navigateur.
- Mais il y a l'erreur suivante :
Not FoundThe requested URL /Doc/mécanisme.pdf was not found on this server.- echo htmlentities($nom_guide)
- Lorsqu'on passe la souris sur le lien, il apparaît dans la barre de statut avec "é" à la place de "é".
- Dans le fichier source, il n'y a pas le caractère "é" mais "é" qui est codé "%C3%83%C2%A9".
- En cliquant sur le lien, le nom du fichier s'affiche avec "é" à la place de "é" dans la barre d'adresse du navigateur.
- Et il y a l'erreur suivante :
Not FoundThe requested URL /Doc/mécanisme.pdf was not found on this server.- echo urlencode($nom_guide)
- Lorsqu'on passe la souris sur le lien, il apparaît correctement dans la barre de statut.
- Dans le fichier source, le caractère "é" est codé "%C3%A9".
- En cliquant sur le lien, le nom du fichier s'affiche correctement dans la barre d'adresse du navigateur.
- Mais il y a l'erreur suivante :
Not FoundThe requested URL /Doc/mécanisme.pdf was not found on this server.- echo utf8_encode($nom_guide)
- Lorsqu'on passe la souris sur le lien, il apparaît correctement dans la barre de statut.
- Dans le fichier source, le caractère "é" est codé "%C3%A9".
- En cliquant sur le lien, le nom du fichier s'affiche correctement dans la barre d'adresse du navigateur.
- Mais il y a l'erreur suivante :
Not FoundThe requested URL /Doc/mécanisme.pdf was not found on this server.
J'ai fait les tests sur deux types de serveurs :
WinXP/Wamp5
Linux
Seul le cas 1 fonctionne sous WinXP/Wamp5.
Le problème vient-il du système d'exploitation ?
De la version de php ?
Autre chose ?
Partager