Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2274 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Codage noms de fichier Windows et serveur FTP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Codage noms de fichier Windows et serveur FTP

n°1632838
XK
Posté le 29-10-2007 à 13:17:31  profilanswer
 

Bonjour,
 
Je suis entrain de faire un petit serveur FTP tournant sous Windows.
Pour lister les fichiers dans les répertoires, j'utilise "ls" pour Windows, ça me permet d'avoir un affichage comme sur un serveur FTP sous Unix.
 
J'ai un soucis avec les dossiers et fichiers comportant des caractères accentués. Mon programme en C renvoi les caractères en sortie de "ls" vers le client FTP, sur le client les caractères ne sont pas affichés corectement, donc impossible de renvoyer au serveur le bon nom de fichier.
Je ne sais pas quel est le type de codage des caractères en sortie de ls (cp437 ?), le mieux serait de convertir les caractères en UTF-8 avant de l'envoyer au client et faire l'inverse en retour.
 
En considérant que les caractères étaient des "wide chars", j'ai essayé d'utiliser le fonction WideCharToMultiByte :
http://msdn2.microsoft.com/en-us/library/ms776420.aspx
Mais sans succès, tous les caractères sont illisibles sur le client, donc ce ne doit pas être des wide chars.
 
Je cherche donc à savoir quelle fonction je pourrais utiliser pour convertir le codage des noms de fichier, de sorte que mes clients puissent communiquer avec le serveur.
 
Merci pour votre aide! :hello:


Message édité par XK le 29-10-2007 à 13:31:12
mood
Publicité
Posté le 29-10-2007 à 13:17:31  profilanswer
 

n°1632847
XK
Posté le 29-10-2007 à 13:50:17  profilanswer
 

Problèmes apparement résolu en convertissant le texte en sortie de ls avec la fonction OemToAinsi() avant d'envoyer les caractères au client FTP :)

n°1632921
tpierron
Posté le 29-10-2007 à 15:14:34  profilanswer
 

Si tu veux un bien meilleur contrôle sur les noms de fichier, je te conseille vivement d'utiliser FindFirstFile, FindNextFile et FindClose, dans leur version unicode de préférence (vu que la conversion UCS-2 => UTF-8 est assez triviale). Oem est un jeux de caractère moisi à fuir comme la peste. Le minimum acceptable étant cp1252.

n°1634909
XK
Posté le 31-10-2007 à 19:19:32  profilanswer
 

Merci pour tes conseils.
Je suis arrivé à faire la conversion ANSI/UTF-8 entre le serveur et le client. FileZilla fonctionne mieux avec UTF-8 alors que d'autres c'est plutôt ANSI. Pense tu qu'il y ai un standard? Je n'ai pas trouvé l'information dans la spécification.

n°1634953
tpierron
Posté le 31-10-2007 à 22:02:01  profilanswer
 

Je ne connais pas assez le protocole FTP pour te répondre. Mais si j'étais toi, je regarderais pour un moyen de transmettre l'encodage des commandes / réponses, un peu l'équivalent de "Content-Type: xyz; charset=cp1252" en HTTP. Pour éviter les prises de tête je te conseille l'UTF-8, car compatible ASCII et la conversion vers ou à partir de l'unicode est triviale.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Codage noms de fichier Windows et serveur FTP

 

Sujets relatifs
[php] lire dans un fichierenvoyer un fichier en methode POST
Web Service et Envoie de fichieradresse du serveur Eskuel
Architecteure Client/serveur - base de données ACCESS ajout de données par fichier independant
Plugin windows media player sur mon site ???Serveur BD - client avec interface comme open office BD
Incrémenter un fichier[VBS] écrire dans un fichier
Plus de sujets relatifs à : Codage noms de fichier Windows et serveur FTP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR