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

  FORUM HardWare.fr
  Programmation
  Perl

  Problème d'accent avec Net::FTP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème d'accent avec Net::FTP

n°1698850
sephiburp
Posté le 07-03-2008 à 13:41:39  profilanswer
 

Hello à tous !
 
J'ai programmé un petit client FTP en perl en utilisant le module Net::FTP  
Je fais connecté ce client à un serveur FileZilla. Le client crée des répertoires sur le serveur, et mon problème c'est que les lettre accentuées ne passent pas !!
 
ex: Si le client crée un répertoire "problème", le répertoire aura comme nom : "problme".
 
(à priori, le problème ne vient pas du serveur car je n'ai aucun souci lorsque j'utilise un autre client FTP)
 
 
Merci de votre aide !

mood
Publicité
Posté le 07-03-2008 à 13:41:39  profilanswer
 

n°1698908
matafan
Posté le 07-03-2008 à 15:10:50  profilanswer
 

A mon avis le problème c'est que tu donne des accents UTF8 alors que le serveur attend de l'ISO8859-1, ou l'inverse. Peut-être que l'autre client FTP fait des conversions ? Essaie déjà d'envoyer des caractères accentués UTF8 puis ISO8859-1 via Net::FTP, et vois si l'un des deux charsets fonctionne.

n°1699078
sephiburp
Posté le 07-03-2008 à 17:56:30  profilanswer
 

je ne sais pas comment changer de charsets, je ne vois rien à ce sujet dans le pod du module
 
en résumé, je me contente juste de faire ces commandes :
 
my $ftp = Net::FTP->new([monip], Debug => 0);
$ftp->login([login],[pass]);
$ftp->binary();
$ftp->mkdir("éssai" );
$ftp->quit();


Message édité par sephiburp le 07-03-2008 à 17:57:24
n°1699147
matafan
Posté le 07-03-2008 à 21:17:49  profilanswer
 

Ca dépend de comment ton source perl est encodé... Essaie un truc comme ça :

my $dirname_utf8 = pack("cca*", 0xc3, 0xa9, "ssai_utf8" );
my $dirname_iso = pack("ca*", 0xe9, "ssai_iso8859-1" );
$ftp->mkdir($dirname_utf8);
$ftp->mkdir()$dirname_iso;


Et regarde si un des deux répertoires est créé correctement.


Message édité par matafan le 07-03-2008 à 21:18:13
n°1700051
sephiburp
Posté le 10-03-2008 à 17:57:44  profilanswer
 

merci pour ton conseil matafan !
J'ai donc essayé ton code, et c'est l'essai en UTF8 qui fonctionne bien.
Donc si j'ai bien suivi, mon serveur attend de l'UTF8.
 
Maintenant vient la question : comment je fais pour que mon client envoi toujours en UTF8 ?
Parce que je me vois mal utiliser un pack à chaque fois :p

n°1700069
sephiburp
Posté le 10-03-2008 à 18:17:58  profilanswer
 

Je viens de trouver ça :

Code :
  1. use Encode;
  2. my $string = "éssais";
  3. my $result = Encode::encode( "utf8", $string );
  4. $ftp->mkdir($result);


 
 
Ca fonctionne mais est-ce que c'est une bonne solution ? pas trop lourd ?


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

  Problème d'accent avec Net::FTP

 

Sujets relatifs
javascript: problème avec des chaines qui contiennent du phpProblème lecture flux output process
C# -- Problème d'éxécution de requête sur la base SQL server[SQLServer] Probleme avec un type de données utilisateur
PHPExcel : problème de temps d'exécution sur le serveur Probleme ciblage classes pour eviter _root
Radio Zanorg sur serveur FTP[résolu] Problème sur formulaire, enregistrement dans BD
[PHP-PostgreSQL] Problème d'échappement de caractèresMail html : Décallage IE => soluce et nouveau problème
Plus de sujets relatifs à : Problème d'accent avec Net::FTP


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