Einzelnen Beitrag anzeigen

DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#1

Base64EncStr / Base64DecStr von gammatester kein Unicode?

  Alt 19. Nov 2019, 18:36
Ich habe mir gerade die beiden funktionen Base64EncStr und Base64DecStr aus gammatesters Unit Mem_Util angeguckt und mir ist aufgefallen, dass die scheinbar kein Unicode können.
(͡° ͜ʖ ͡°) erg ibt etwas, was man nicht mit Base64DecStr zurückrechnen kann.

Delphi-Quellcode:
uses Mem_Util;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Edit1.Text := '(͡° ͜ʖ ͡°)';
end;

function Base64Encode(const S: string): string;
begin
 Result := Base64EncStr(S);
end;

function Base64Decode(const S: string): string;
begin
 Result := Base64DecStr(S);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 Edit2.Text := Base64Encode(Edit1.Text);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 Edit1.Text := Base64Decode(Edit2.Text);
end;
gammatesters Base64EncStr ergibt: KD+wID8/ID+wKQ==
TNetencoding.Base64Encode ergibt: KM2hwrAgzZzKliDNocKwKQ==

Gibt es hier einen Trick? Innerhalb von Mem_Util sind string-Parameter als BString deklariert, was bei mir AnsiString ergibt.
Delphi-Quellcode:
{$ifdef BIT16}
  {$ifdef V7Plus}
    type
      BString = string[255]; {String of 8 bit characters}
      pBString = ^BString;
      char8 = char; {8 bit characters}
      pchar8 = pchar;
  {$else}
    type
      BString = string[255]; {String of 8 bit characters}
      pBString = ^BString;
      char8 = char; {8 bit characters}
      pchar8 = ^char;
  {$endif}
{$else}
  {$ifdef UNICODE}
    type
      BString = AnsiString; {String of 8 bit characters}
      pBString = pAnsiString;
      char8 = AnsiChar; {8 bit characters}
      pchar8 = pAnsiChar;
    {$else}
    type
      BString = AnsiString; {String of 8 bit characters}
      pBString = pAnsiString;
      char8 = AnsiChar; {8 bit characters}
      pchar8 = pAnsiChar;
  {$endif}
{$endif}
Ich möchte gerne diese Funktionen nutzen, da die doch weitaus schneller sind als die in der TNetEncoding Unit.

Geändert von DieDolly (19. Nov 2019 um 18:58 Uhr)
  Mit Zitat antworten Zitat