Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > Delphi > Langage
Langage Tout ce qui concerne le langage (POO, syntaxe, message d'erreur...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 07/01/2013, 10h43   #1
coucoucmoi
Membre régulier
 
Didier
Développeur informatique
Inscription : janvier 2003
Messages : 170
Détails du profil
Informations personnelles :
Nom : Didier
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : janvier 2003
Messages : 170
Points : 70
Points : 70
Par défaut INDY POP décoder le sujet

Bonjour, j'ai un soucis avec mon client pop fait en delphi7 avec indy9.

J'ai un sujet de type :
=?utf-8?B?U1lOQVBTRSA6IHZvdHJlIHLDqWbDqXJlbmNlbWVudCBzdXIg?= =?utf-8?B?bGEgcGxhdGUtZm9ybWUgZGUgZ2VzdGlvbiBkZXMgYXBwZWxzIGQnb2Zm?= =?utf-8?B?ZXM=?=

la propriété ContentTransferEncoding vaut base64
La propriété charset vaut utf-8

Transformer de l'utf-8 en ansi, ok
mais pour voir le vrai contenu du message, je seche un peu, je n'arrive pas a transformer ce texte !!!

Pour infos, mon webmail me donne la valeur "SYNAPSE : votre référencement sur la plate-forme de gestion des appels d'offes".

Pease help me !!!!!
coucoucmoi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2013, 10h53   #2
coucoucmoi
Membre régulier
 
Didier
Développeur informatique
Inscription : janvier 2003
Messages : 170
Détails du profil
Informations personnelles :
Nom : Didier
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : janvier 2003
Messages : 170
Points : 70
Points : 70
J'ai un début de solution, mais je trouve :
"SYNAPSE : votre référencement sur la plate-forme de gestion des appels d'off"
j'ai donc des caractères bizarre et il me manque la fin
la fonction utilisé (trouvé sur le web et non changée :
Code :
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
43
44
45
46
47
48
49
50
function DecodeBase64(const CinLine: string): string;
const
  RESULT_ERROR = -2;
var
  inLineIndex: Integer;
  c: Char;
  x: SmallInt;
  c4: Word;
  StoredC4: array[0..3] of SmallInt;
  InLineLength: Integer;
begin
  Result := '';
  inLineIndex := 1;
  c4 := 0;
  InLineLength := Length(CinLine);
 
  while inLineIndex <=InLineLength do
  begin
    while (inLineIndex <=InLineLength) and (c4 < 4) do
    begin
      c := CinLine[inLineIndex];
      case c of
        '+'     : x := 62;
        '/'     : x := 63;
        '0'..'9': x := Ord(c) - (Ord('0')-52);
        '='     : x := -1;
        'A'..'Z': x := Ord(c) - Ord('A');
        'a'..'z': x := Ord(c) - (Ord('a')-26);
      else
        x := RESULT_ERROR;
      end;
      if x <> RESULT_ERROR then
      begin
        StoredC4[c4] := x;
        Inc(c4);
      end;
      Inc(inLineIndex);
    end;
 
    if c4 = 4 then
    begin
      c4 := 0;
      Result := Result + Char((StoredC4[0] shl 2) or (StoredC4[1] shr 4));
      if StoredC4[2] = -1 then Exit;
      Result := Result + Char((StoredC4[1] shl 4) or (StoredC4[2] shr 2));
      if StoredC4[3] = -1 then Exit;
      Result := Result + Char((StoredC4[2] shl 6) or (StoredC4[3]));
    end;
  end;
end;
arg, je ne suis plus tres loin, mais je galère car ne comprend pas tout là !
coucoucmoi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2013, 11h45   #3
Paul TOTH
Expert Confirmé Sénior
 
Avatar de Paul TOTH
 
Homme Paul TOTH
Freelance
Inscription : novembre 2002
Messages : 4 422
Détails du profil
Informations personnelles :
Nom : Homme Paul TOTH
Âge : 43
Localisation : Réunion

Informations professionnelles :
Activité : Freelance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2002
Messages : 4 422
Points : 10 811
Points : 10 811
le décodage se fait comme suis:

1) répérer "=?...?=", il y en a trois dans ton titre

2) repérer "a?b?c" dans les "...",
- a est l'encodage: ici utf-8
- b est le format: B pour base64 (Q pour QuotedPrintable)
- c est le texte

tu dois donc récupérer UTF8Decode(DecodeBase64(c))

=?utf-8?B?U1lOQVBTRSA6IHZvdHJlIHLDqWbDqXJlbmNlbWVudCBzdXIg?= =?utf-8?B?bGEgcGxhdGUtZm9ybWUgZGUgZ2VzdGlvbiBkZXMgYXBwZWxzIGQnb2Zm?= =?utf-8?B?ZXM=
?=

décodage Base 64 :

"SYNAPSE : votre référencement sur" "la plate-forme de gestion des appels d'off""es"

décodage UTF8 :

"SYNAPSE : votre référencement sur" "la plate-forme de gestion des appels d'off""es"

__________________
Developpez.com: Mes articles, forum FlashPascal
Entreprise: Execute SARL
Produits : UPnP, RemoteOffice, FlashPascal
Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5%
Paul TOTH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2013, 14h57   #4
coucoucmoi
Membre régulier
 
Didier
Développeur informatique
Inscription : janvier 2003
Messages : 170
Détails du profil
Informations personnelles :
Nom : Didier
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : janvier 2003
Messages : 170
Points : 70
Points : 70
C'est super, ca marche tres bien, merci beaucoup :=)
coucoucmoi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 21h42.


 
 
 
 
Partenaires

Hébergement Web