Einzelnen Beitrag anzeigen

MicAlter

Registriert seit: 29. Aug 2007
12 Beiträge
 
#5

Re: IdPOP3, UTF-8 Charset, Umlaute äöü

  Alt 29. Apr 2009, 18:58
@mjustin: Leider darf ich, z.Zt. zumindest, die Indy-Version nicht austauschen...


Das mit dem quoted-printable ist es. Guter Hinweis, Danke himitsu.

Komisch aber, da dieses in Indy 9.x bereits implementiert ist.

Mittlerweile habe ich genau den Teil mal von Hand "quick'n dirty" programmiert:

Delphi-Quellcode:
function ConvertUTF8( AText : String ) : String;
    var i,nUTF8Code : Integer;
        sCode : String;
        sUTF8,wsUTF8Char : WideString;
    begin
      Result := '';
      sUTF8 := '';
      i := 1;
      while i <= length(AText) do
      begin
        //Sonderzeichen werden mit einem "=" gequoted
        if AText[i] = '=then
        begin
          if i+2 <= length(AText) then
          begin
            sCode := Copy(AText,i+1,2);
            //IsHexable prüft nur, ob es gültige HEX-Zeichen 'a'..'z','A'..'Z','0'..'9' sind
            if IsHexable(sCode) then
            begin
              nUTF8Code := StrToInt('$'+sCode);
              wsUTF8Char := chr(nUTF8Code);
              sUTF8 := sUTF8 + wsUTF8Char;
            end;
          end;
          Inc(i,3);
        end
        else begin
          sUTF8 := sUTF8 + AText[i];
          Inc( i );
        end;

      end;

      //UTF8ToWideString aus dem Jedi-Paket
      Result := UTF8ToWideString(sUTF8);
    end;
Ist wirklich quick und wirklich dirty - aber für den ersten Test hat's gereicht.

Ich werd' mal sehen, warum die Indy-POP3-Komponente das nicht von sich aus macht... (lasse den Thread also noch offen)
  Mit Zitat antworten Zitat