Bonjour j'ai un gros soucie avec les accents, j'ai une page web qui appel un script CGI perl qui traite les données ce script envoie un mail au client jusque la tout vas bien sauf les accents .

é ce trouve transformer en , j'ai tenté d'utilise Encode mais il n'est pas présent sur le serveur, la version de perl disponible est
5.00503


Voic comment je récupère les données envoyé par le client


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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#====================================================================#
#                        Réception des données                       #
#====================================================================#
 
sub receivepost {
my %postdata;
my ($len,$d,$data,$nom,$valeur);
 
  if ($ENV{'REQUEST_METHOD'} =~ /post/i) {
    # Longueur de l envoi
    $len = $ENV{'CONTENT_LENGTH'};
    $data = '';
    # On lit les données envoyées
    if (read(STDIN,$data,$len) != $len) {
      # tout n est pas lu ... erreur de transmission
      print "Location: error.htm\n\n";
      die("Error reading 'POST' data\n") ;
    }
    # séparation de la chaine par paires
    foreach $d (split('&',$data)) {
      # séparer les paires nom=valeur
      ($nom,$valeur) = split('=',$d);
      $nom = url_decode($nom);
      $valeur = url_decode($valeur);
    #  $valeur = encode_entities($valeur);
      # ranger les paires dans %postdata
      $postdata{$nom} = $valeur;
    }
  }
  return %postdata ;
}
 
#====================================================================#
#                  Décodage des données transmise                    #
#====================================================================#
 
sub url_decode {
my $s = shift;
  $s =~ tr/+/ /;
  $s =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("C",oct("0x$1"))/ge;
  return $s;
}
j'invoque receivepost() comme ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
if ($ENV{'REQUEST_METHOD'} =~ /post/i ) {
  my %form = receivepost();
 
 traitement ...
}
J'ai beau chercher je ne trouve pas de solution a ce problème d'accent
le mail est envoyé en iso-8859-1

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
  print MAIL "Mime-Version: 1.0\n";
  print MAIL "Content-Type: text/html; charset=ISO-8859-1\n";
  print MAIL "Content-Transfer-Encoding: 7-bit\n";
merci de votre aide