AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte MS XML 6.0 speichern von Umlauten bzw. Sonderzeichen
Thema durchsuchen
Ansicht
Themen-Optionen

MS XML 6.0 speichern von Umlauten bzw. Sonderzeichen

Ein Thema von handson · begonnen am 15. Dez 2009 · letzter Beitrag vom 15. Dez 2009
Antwort Antwort
handson
Registriert seit: 18. Jan 2007
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
 
Benutzerbild von iKilledKenny
iKilledKenny

 
Delphi 5 Professional
 
#2
  Alt 15. Dez 2009, 10:54
XML-Code:
<?xml version='1.0' encoding='ISO-8859-1' ?>
<root>
    Ein Text mit Umlauten (ü ö ä Ü Ö Ä)
</root>
Alexander Stork
  Mit Zitat antworten Zitat
handson

 
Delphi 2007 Professional
 
#3
  Alt 15. Dez 2009, 11:17
Nein, das nützt mir auch nichts. Zum einen muss es UTF-8 bleiben, zum weiteren soll MSXML die Einträge schreiben und
da schreibt er immer noch die Escape Sequenzen rein. Der Kopf ist nachher für das Auslesen wichtig, aber hier ist das eigentliche
Erstellen nicht in Ordnung.
Stephan Faust
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#4
  Alt 15. Dez 2009, 11:27
Das mit dem Kästchen könnte schon richtig so sein,
denn die #194 ist im Unicode auch kein ü ... das ü müßte eine #252 sein.


Hast du auch wirklich UTF8 als Encoding angegeben?
  Mit Zitat antworten Zitat
handson

 
Delphi 2007 Professional
 
#5
  Alt 15. Dez 2009, 11:32
Das war jetzt ein Beispiel ohne UTF8Encode. Würde ich den Text mit UTF8Encode bearbeiten, sieht die Ausgabe so aus:

Zitat:
:
:
<SpclInstrDesc>Bitte denken Sie bitte
zuk#195;#8218;#194;nftig daran</SpclInstrDesc>
:
:
(Habe da auch mal wieder das kaufmännische "und" rausgenommen, sonst sieht man das nicht...)
Stephan Faust
  Mit Zitat antworten Zitat
handson

 
Delphi 2007 Professional
 
#6
  Alt 15. Dez 2009, 11:35
Als Beispiel habe ich mal einen Screenshot vom IE gemacht, wie das dann mit UTF8Encode aussieht...
Miniaturansicht angehängter Grafiken
beispiel_206.jpg  
Stephan Faust
  Mit Zitat antworten Zitat
handson

 
Delphi 2007 Professional
 
#8
  Alt 15. Dez 2009, 12:46
So, habe das Problem gelöst. Es lag an ein ganz anderen Stelle, die eigentlich nichts mit dem XML zu tun hat.
Allerdings hat mir der Artikel vom MSDN noch ein paar Hinweise gegeben, wie es eigentlich auszusehen hat.

Trotzdem allen Beteiligten vielen Dank für die schnelle Hilfe!

Stephan
Stephan Faust
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz