IIS envoie de fichier avec accent sous php

Fermé
Sébas - Modifié par Sébas le 23/09/2010 à 21:01
 Sébas - 5 oct. 2010 à 16:10
Bonjour,

J'ai un problème étrange. Nous avons déplacé un site web(Mediawiki) du serveur linux vers windows 2003.

Ce site est en php. Le problème est lors de l'envoi de fichier avec accent, php le sauvegarde avec de caractère UTF-8. Exemple: léquipe.png devient léquipe.png.
Sous linux, si je veux voir le fichier on entre http://lesite/l%C3%A9quipe.png et tous fonctionnent. Mais sous Windows pour que ça fonctionne, je dois remplacer é par é.

comment faire pour que IIS interprète %C3%A9 comme é??
pour reproduire l'érreur, utiliser ce code.

PS: le site dois rester avec le charser=utf-8

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr" dir="ltr"> 
 <head> 
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
</head> 
<body> 
<form method="POST" action="" enctype="multipart/form-data">  
     <!-- Le contenu du formulaire est à placer ici... --> 
     <input type="file" name="avatar"> 
      
<input type="hidden" name="MAX_FILE_SIZE" value="100000000000000000"> 
<input type="submit" value="1234" /> 

</form>  

<?php 
if(isset($_FILES['avatar'])) 
{  
     $dossier = 'test/'; 
     $fichier = basename($_FILES['avatar']['name']); 
     if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné... 
     { 
           
     echo 'Upload effectué avec succès ! <a href="test/'.rawurlencode($fichier).'">test</a>'; 
     } 
     else //Sinon (la fonction renvoie FALSE). 
     { 
          echo 'Echec de l\'upload !'; 
     } 
} 
?> 

</body> 
</html>


A voir également:

3 réponses

touzazimut Messages postés 20 Date d'inscription samedi 25 septembre 2010 Statut Membre Dernière intervention 27 septembre 2010 5
26 sept. 2010 à 18:49
Hello Sébas,

Je ne voudrait pas être enm..dant... Mais es bien raisonnable d'utiliser des accents dans les noms de page et d'images... ?

Je crois bien que tu risque de multiplier les comportements bizarres parce que les navigateurs ne seront jamais tous d'accord...

https://forum.alsacreations.com/topic-2-25249-1-Accents-dans-les-URL-qui-a-raison-.html

Sur nos sites, nous n'en utilisons jamais pour les url...
Tu pourrais trouver un petit script pour transformer tous les accents de tes fichiers ?

Nous, on a même utiliser un codage dans le php pour ne pas mettre d'accent dans le code. Ce qui nous permet d'avoir une grande maitrise de l'encodage.
1
J'ai modifié le PHP pour renommer les fichiers avec des accents à la sauvegarde.
Mais j'ai encore le problème des fichiers déjà présent.
Je cherche à renommer tous les fichiers (6645) contenant les codes spéciaux dans le nom de fichier.
à = à
è = è
é = é
...
Auriez-vous un truc?

Merci
0
J'ai fait un script en PHP qui lit tous les noms de fichier et renomme

rename($filepath, utf8_decode($filepath));
0