Hallo,
ich habe wie folgt eine XML-Datei erzeugt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| if not Assigned(XML) then XML := TXMLDocument.Create(nil); XML.Active := True; XML.Encoding := 'UTF-8'; XML.NodeIndentStr := ' '; XML.Options := [doNodeAutoIndent]; |
Soweit so gut. Danach habe ich einen String mit AES wie folgt verschlüsselt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| function EncodeString(Value, Key: PChar): PChar; var AES: TCipher_Rijndael; begin try Result := Value;
AES := TCipher_Rijndael.Create(Key, nil); Result := PChar(AES.EncodeString(Value)); finally AES := nil; AES.Free; end; end; |
Bei der Verschlüsselung kommt z.B. sowas raus: "'b¨Ð«øR'#$1B'´á'#$19#$1D'‡I¿%0'"
Diesen String soll ich nun in der XML-Datei als Attribut von einem Knoten speichern. Dafür verwendet ich folgenden Vorgang:
Delphi-Quelltext
1:
| XML.ChildNodes['Main_Knoten'].ChildNodes['Konto1'].Attributes['Decoded'] := Decode('KontoNr.1'); |
Dann kriege ich die Fehlermeldung: "An invalid character was found in text content." Ich vermute mal, dass UTF-8 nicht mit den ganzen Sonderzeichen klar kommt. Weiß jemand, wie ich das Problem umgehen kann bzw. wie ich den verschlüsselten String in der XML-Datei speichern kann.
Dankend
Stefan