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?