bonjour,

j'utilisais les composant ICS pour POSTer une requête http, ça marche bien. mais j'ai voulu utiliser le composant natif de xe8:TNetHTTPClient
et la j'arrive pas a envoyer les accents
voici mon code:

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
 
var NetHTTPClient : TNetHTTPClient;
    parametres : Tstringlist;
begin
   parametres := tstringlist.Create;
   NetHTTPClient := TNetHTTPClient.Create(nil);
 
   parametres .Add('nom_logiciel='+UTF8Encode('éè'));
   parametres .Add('emplacement='+EncodeURIComponent('éè') );
   parametres .Add('version='+ 'éè');
 
   NetHTTPClient.ContentType := 'application/x-www-form-urlencoded';
   NetHTTPClient.AcceptEncoding := 'UTF-8';
 
   NetHTTPClient.post('http://metaclients.xxx.fr/xxx',parametres,nil, TEncoding.UTF8).ContentAsString(tencoding.UTF8);
 
   parametres .Free;
   NetHTTPClient.Free;
end;
j'ai mis
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
  UTF8Encode('éè')
  EncodeURIComponent('éè')
pour tester si ça changeait quelque chose...mais non



j'ai essayé aussi

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
 
var NetHTTPClient : TNetHTTPClient;
     ss: tstringstream;
     Data : AnsiString;
begin
  NetHTTPClient := TNetHTTPClient.Create(nil);
  Data := 'nom_logiciel='+UTF8Encode('éè') +'&' +
          'emplacement='+EncodeURIComponent('éè') +'&' +
          'version='+ 'éè';
 
  ss := tstringstream.Create(Data, tencoding.UTF8);
 
  NetHTTPClient.ContentType := 'application/x-www-form-urlencoded';
  NetHTTPClient.AcceptEncoding := 'UTF-8';
 
  NetHTTPClient.post('http://metaclients.xxx.fr/xxx',ss).ContentAsString(tencoding.UTF8);
 
  NetHTTPClient.Free;
  ss.Free;
end;
pareil, dans ma base mysql j'ai éé au lieu de éè

une idée ?

merci

exyacc