IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Problème d'encodage accents dans urls


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  
    Inscrit en
    Septembre 2011
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Septembre 2011
    Messages : 100
    Par défaut Problème d'encodage accents dans urls
    Bonjour,
    Je suis en train de coder une page permettant de naviguer à travers le contenu de répertoires pour y récupérer les fichiers.
    Tout fonctionne bien en local sous Windows avec xampp mais j'ai un problème sur mon serveur de test sous linux pour les fichiers contenant des caractères accentués.

    J'utilise directory iterator pour récupérer la liste des fichiers et j'encode le nom des fichiers en utf8 comme ceci : <a href='.$fichiers.utf8_encode($item->getFilename()
    Mais l'url n'est pas la même en local et sur le serveur.
    Mon fichier kéola.jpg par exemple devient K%e9oala.jpg en local et l'url fonctionne correctement et K%EF%BF%BDoala.jpg sur le serveur et ne fonctionne pas.

    Je précise que le serveur n'est pas en utf8 à la base, j'ai du le forcer grâce à un htaccess.

    Merci d'avance à qui pourra m'aider.

  2. #2
    Inactif  
    Inscrit en
    Septembre 2011
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Septembre 2011
    Messages : 100
    Par défaut
    J'ai remplacé par urlencode($item->getFilename()).
    Cela fonctionne maintenant sur le serveur mais plus en local.
    Dans l'absolu ce n'est très grave mais si vous pouviez m'éclairer sur le pourquoi j'en serai ravi

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    EF BF BD sont les unités du point de code U+FFFD (�) qui est le caractère de substitution par défaut de tout caractère qui ne peut être représenté. Donc il y a une tuile quelque part (pas de l'ISO-8859-1 au départ, a priori).

    D'autre part, je ne comprends pas comment vous pouvez obtenir K%e9oala.jpg avec un utf8_encode : ce n'est pas de l'UTF-8 (le résultat devrait être K%C3%A9oala.jpg puisque é est codé sur deux unités).

    Enfin, Apache, sous Windows, l'URL devrait être en UTF-8 dans la mesure où il (APR en réalité) cherche à tirer profit de l'API Unicode de Windows pour tout ce qui touche aux fichiers (sinon ça doit aboutir à une 403). Sur Unixoïde, ça n'a pas d'importance, il faut que ce soit le même mais certains clients rééencode la requête suivant leur configuration (excepté si l'URL est urlencodée).

Discussions similaires

  1. ASPX problème accent dans URL
    Par brownie007 dans le forum ASP.NET
    Réponses: 8
    Dernier message: 09/03/2011, 10h02
  2. Problème avec les accents dans wxLogTextCtrl
    Par dug dans le forum wxWidgets
    Réponses: 3
    Dernier message: 06/04/2009, 17h49
  3. Htaccess convertir accents dans url
    Par ceweb dans le forum Apache
    Réponses: 4
    Dernier message: 25/11/2008, 20h41
  4. Encodage accent dans les dates
    Par Piett dans le forum Général Python
    Réponses: 10
    Dernier message: 01/07/2008, 12h31
  5. [SimpleXML] Problème avec les accents dans le XML
    Par trotters213 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 18/12/2006, 10h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo