Einzelnen Beitrag anzeigen

bcvs

Registriert seit: 16. Jun 2011
703 Beiträge
 
Delphi 12 Athens
 
#1

Keine Zuordnung für Unicode-Zeichen in der Multibyte-Zielcodeseite vorhanden

  Alt 2. Aug 2024, 11:08
Hallo zusammen,

ich decodiere einen Base64-String, der eine XML-Datei enthält, also wieder ein String ist.
Dabei wird die Exception EEncodingError 'Keine Zuordnung für Unicode-Zeichen in der Multibyte-Zielcodeseite vorhanden' geworfen.
Delphi-Quellcode:
function Base64DecodeStringToString(Base64String:String):string;
var
  Input: TStringStream;
  Output: TStringStream;
begin
  Input := TStringStream.Create(Base64String, TEncoding.UTF8);
  Output := TStringStream.Create('', TEncoding.UTF8);
  try
    Base64DecodeStream(Input, Output);
    result:=Output.DataString; // <-- hier Exception
  finally
    Input.Free;
    Output.Free;
  end;
end;
Wenn ich die StringStreams ohne den zweiten Parameter für das Encoding create, läuft es ohne Exception durch. Dann gab es nur Probleme, dass Umlaute etc. nicht korrekt rüberkommen.

Das Base64DecodeStream ist von hier:
https://www.delphipraxis.net/193824-...dateien-2.html

Kann man da etwas machen, außer es mit einem try - except nochmal ohne Encoding zu versuchen?
  Mit Zitat antworten Zitat