Einzelnen Beitrag anzeigen

handson

Registriert seit: 18. Jan 2007
Ort: Delmenhorst
113 Beiträge
 
Delphi 2007 Professional
 
#1

MS XML 6.0 speichern von Umlauten bzw. Sonderzeichen

  Alt 15. Dez 2009, 10:25
Hallo!

Ich benutze die Funktionen aus der MSXML6.DLL. Das funktioniert auch alles ganz, bis auf die deutschen Umlaute bzw. Sonderzeichen.
Beispiel-Code:

Delphi-Quellcode:
Procedure TFormMain.AddPickTicketTextXML(PickTicketText : TImportPickTicketText; LfdNr : Integer;
                                         LK : String; Blank : Boolean = False);
Var
  sub : IXMLDOMNode;

Begin
  PickticketHdrInstruction := xmlDoc.createElement('PickticketHdrInstruction');
  PickticketInstrFields := xmlDoc.createElement('PickticketInstrFields');
  
  :
  :
  sub := xmlDoc.createElement('SpclInstrDesc');
  sub.text := PickTicketText.Text;
  PickticketInstrFields.appendChild(sub);
  :
  :

  PickticketHdrInstruction.appendChild(PickticketInstrFields);
  ListOfHdrInstructions.appendChild(PickticketHdrInstruction);
End;
In der XML-Datei sieht das dann so aus:

Zitat:
<PickticketInstrFields>
:
:
<SpclInstrDesc>Bitte denken Sie bitte zuk#194;nftig
daran</SpclInstrDesc>
:
:
</PickticketInstrFields>
(zwischen zuk und #194 kommt natürlich noch ein kaufmännisches "und", der zeigt das ursprünglich hier nicht an...)

Hier sieht man, dass aus dem ü von zukünftig eine Escape Sequenz gemacht hat. Der IE zeigt da nur ein Kästchen an.
Benutze ich unter Delphi die Funktion UTF8Encode, dann wandelt er aus allen UTF-8 Zeichen auch Escape Sequenzen. Das geht
gar nicht .

Wie kann ich denn die Umwandlung in diese Sequenzen ausschalten, so dass er den reinen UTF-8 Code schreibt und der IE
das auch richtig anzeigt?

Gruß,
Stephan
Stephan Faust
  Mit Zitat antworten Zitat