Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Datei in UTF-8 abspeichern; (https://www.delphipraxis.net/80131-datei-utf-8-abspeichern%3B.html)

.echo 3. Nov 2006 11:01


Datei in UTF-8 abspeichern;
 
hallo,

Also ich hab folgendes problem;
Ich verwende die Txmldocument komponente, um eine xml datei auszulesen,
Das problem was sich hierbei ergab ist, das zwar in der xml UTF-8 als
Format declariert ist, jedoch die datei selber in DOS abgespeichert ist und nicht in U8-DOS
abgespeichert ist, und somit der pharser bei sonderzeichen abbricht;

Was ich wissen wollte, ist, gibt es eine möglichkeit die xml vor dem pharsen zu öffnen und diese dann in utf-8 abzuspeichern;?

danke schonmal im vorraus;

~.echo

xaromz 3. Nov 2006 11:15

Re: Datei in UTF-8 abspeichern;
 
Hallo,

natürlich geht das. Du wirst aber wahrscheinlich die Sonderzeichen selbst ersetzen müssen, da sich die Codierung unter Windows von der unter DOS unterscheidet.
Am Einfachsten liest Du die Datei ein und ersetzt die Sonderzeichen mittels StringReplace. Das Ergebnis kannst Du dann mit Delphi-Referenz durchsuchenUTF8Encode nach UTF8 kodieren. Zum Ersetzen bietet sich z. B. meine StringReplaceMultiple-Routine an, damit geht das in einem Rutsch.
Den fertigen String kannst Du dann einfach Deinem TXMLDocument übergeben.

Gruß
xaromz

.echo 3. Nov 2006 11:40

Re: Datei in UTF-8 abspeichern;
 
Ah danke danach hab ich gesucht;
Klappt jetz;
~.echo

Bernhard Geyer 3. Nov 2006 11:40

Re: Datei in UTF-8 abspeichern;
 
Kannst Du nicht dafür sorgen das dieses Format richtig abgespeichert wird?

Wenn jetzt jeder anfängt solche Fehler selbst zu umschiffen hätte man XML gar nicht entwickeln brauchen und hätte gleich bei Textdateien und Binärdateien bleiben können. Jeder der XML-Dateien erzeugt sollte sich an die Grundregeln von XML bezüglich Zeichencodierung und Codierungsregeln halten.

marabu 3. Nov 2006 11:42

Re: Datei in UTF-8 abspeichern;
 
Hallo,

bevor ich die ganze Datei umkodiere passe ich doch lieber das encoding des XML-Dokuments an die Realität an:

XML-Code:
 <? xml version="1.0" encoding="CP850" ?>
Freundliche Grüße vom marabu

Was war denn da los? Der XML Code wird erst angezeigt, wenn ich eine Leerstelle hinter das erste Fragezeichen setze?

.echo 3. Nov 2006 14:10

Re: Datei in UTF-8 abspeichern;
 
Hehe, das hätt ich ja auch gemacht; )
Aber das xml liegt auf einem webserver als api, und der admin hat scheinends keine ahnung wie man es richtig formatiert; Daher gings net;
Aber in diesem falle wars ja einfach zu lösen;

Bernhard Geyer 3. Nov 2006 14:17

Re: Datei in UTF-8 abspeichern;
 
Zitat:

Zitat von .echo
Hehe, das hätt ich ja auch gemacht; )
Aber das xml liegt auf einem webserver als api, und der admin hat scheinends keine ahnung wie man es richtig formatiert; Daher gings net;

Vermutlich mit einer alten Notepad-Version erstellt. Manche Hersteller werben ja damit das man das ja so machen könnte. Und das da noch nicht andere darüber gestolpert sind. Vermutlich wird hier oft kein XML-Parser eingesetzt sondern etwas selbstgestricktes.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:00 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