AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML XML mit UTF-8 encoded in nem Editor darstellen
Thema durchsuchen
Ansicht
Themen-Optionen

XML mit UTF-8 encoded in nem Editor darstellen

Ein Thema von Iwo Asnet · begonnen am 21. Aug 2012 · letzter Beitrag vom 21. Aug 2012
Antwort Antwort
Iwo Asnet

Registriert seit: 11. Jun 2011
313 Beiträge
 
#1

XML mit UTF-8 encoded in nem Editor darstellen

  Alt 21. Aug 2012, 16:05
Hi,

Ich habe folgende XML-Datei
Code:
<?xml version="1.0" encoding="UTF-8"?>
<Sample>Rückwärts</Sample>
Alles klar: UTF-8 kodierte ASCII-Datei. Wenn ich die mit dem IE/FF, Notepad++ oder sonstwem öffne, sehe ich genau das oben angezeigte, also eben die UTF-8 kodierten Zeichen. Is ja klar, die XML-Datei enthält ja keinen BOM.

Mit welchem Tool schaffe ich es, das die XML-Datei gelesen und das "encoding" Attribut korrekt angewendet wird? Ziel: Ich möchte ohne BOM folgendes sehen:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<Sample>Rückwärts</Sample>
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#2

AW: XML mit UTF-8 encoded in nem Editor darstellen

  Alt 21. Aug 2012, 16:40
Is ja klar, die XML-Datei enthält ja keinen BOM.
UTF-8 kodierte Dateien brauchen kein BOM (es wird sogar davon abgeraten, es zu verwenden).

Notepad ++ zeigt bei mir auch korrekt "UTF-8 ohne BOM" an, wenn ich das Dokument

<?xml version="1.0" encoding="UTF-8"?>
<Sample>Rückwärts</Sample>

öffne, und es steht lesbar der Text "Rückwärts" im Editor.

Nachtrag:

Auch mit ShowMessage(UTF8Decode('Rückwärts')); kann man es leicht testen es ist eine korrekte UTF-8 Codierung.
Michael Justin

Geändert von mjustin (21. Aug 2012 um 16:48 Uhr)
  Mit Zitat antworten Zitat
Iwo Asnet

Registriert seit: 11. Jun 2011
313 Beiträge
 
#3

AW: XML mit UTF-8 encoded in nem Editor darstellen

  Alt 21. Aug 2012, 16:41
Wenn man hier etwas postet, kommt man selbst drauf.

Der XML-String wird UTF-8 kodiert und dann nochmals UTF-8 kodiert gespeichert, nur wo-frag ich mich gerade (C# code)

edit... thema erledigt.... C# speichert von sich aus als UTF-8 und kodiert also nochmals... Na ja..

Wo sitzt das größte Problem?..

Geändert von Iwo Asnet (21. Aug 2012 um 16:45 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: XML mit UTF-8 encoded in nem Editor darstellen

  Alt 21. Aug 2012, 16:50
UTF-8 kodierte Dateien brauchen kein BOM (es wird sogar davon abgeraten, es zu verwenden).
Falsch.

"Text"-Dateien ohne BOM sind standardmäßig ANSI und werden in der Standard-CodePage des Systems ausgewertet.

"XML"-Dateien sollten sowieso keine BOMs enthalten und wenn weder BOM, noch ein Encoding-Attribut (in der Processing-Instruction) angegeben ist, dann wird sie standardmäßig als UTF-8 interpretiert.

Wenn man die eine XML-Datei aber mit einem "Text"-Editor öffnet, welcher nicht das enthaltene Encoding-Attribut beachtet, dann soll man sich auch nicht wundern, wenn die Datei als ANSI interpretiert wird.



Es gibt einige "höherentwickelte" Text-Editoren, welche XML-Prozessoranweisungen interpretieren, sowie sich den Text ansehn, ob sie z.B. für UTF-8 typische Zeichen-/Bytekombinationen entdecken und dann dementsprechend die (vermutlich) richtige Codierung verwenden.
$2B or not $2B

Geändert von himitsu (21. Aug 2012 um 16:52 Uhr)
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#5

AW: XML mit UTF-8 encoded in nem Editor darstellen

  Alt 21. Aug 2012, 16:53
UTF-8 kodierte Dateien brauchen kein BOM (es wird sogar davon abgeraten, es zu verwenden).
Falsch.

"Text"-Dateien ohne BOM sind standardmäßig ANSI und werden in der Standard-CodePage des Systems ausgewertet.
Wo, unter Windows?

Aus Wikipedia:

Zitat:
The Unicode Standard neither requires nor recommends the use of the BOM for UTF-8. The presence of the UTF-8 BOM may cause interoperability problems with existing software that could otherwise handle UTF-8
Weder erfordert noch empfiehlt der Unicode Standard die Verwendung des BOM für UTF-8. Die Anwesenheit des UTF-8 BOM kann Interoperabilitätsprobleme mit bestehender Software bewirken, die andernfalls UTF-8 verarbeiten könnten.
Michael Justin

Geändert von mjustin (21. Aug 2012 um 16:59 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

AW: XML mit UTF-8 encoded in nem Editor darstellen

  Alt 21. Aug 2012, 16:58
Da Delphi noch nicht für Linux kompiliert ... ja.
$2B or not $2B
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#7

AW: XML mit UTF-8 encoded in nem Editor darstellen

  Alt 21. Aug 2012, 17:03
Da Delphi noch nicht für Linux kompiliert ... ja.
Das spielt eigentlich im Zeitalter der Dateiübertragung zwischen verschiedenen Computersystemen und Plattformen keine große Rolle mehr.

Es kommt weniger darauf an, von welcher Programmiersprache aus die UTF-8 Datei erzeugt wird als dass man sich darauf einigen muss, welches Encoding verwendet wird.
Wenn UTF-8 mit BOM Probleme mit anderen Anwendungen bereiten kann, die die UTF-8 Dateien ohne BOM problemlos verarbeiten könnten, würde ich eher der Empfehlung des Unicode Standards folgen und kein BOM verwenden (siehe mein Nachtrag).
Michael Justin

Geändert von mjustin (21. Aug 2012 um 17:10 Uhr)
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#8

AW: XML mit UTF-8 encoded in nem Editor darstellen

  Alt 21. Aug 2012, 17:22
Es gibt einige "höherentwickelte" Text-Editoren, welche XML-Prozessoranweisungen interpretieren, sowie sich den Text ansehn, ob sie z.B. für UTF-8 typische Zeichen-/Bytekombinationen entdecken und dann dementsprechend die (vermutlich) richtige Codierung verwenden.
Das ehrt das simple "notepad.exe":

es stellt den Dateiinhalt

Rückwärts

als "Rückwärts" dar.

Damit zählt notepad.exe jetzt zu den höherentwickelten Editoren. Es interpretiert den Dateiinhalt nicht als ANSI, trotz fehlendem BOM...

Aber ansonsten gehe ich natürlich auch davon aus, dass Windows Anwendungen bei fehlendem BOM von der aktuellen Systemeinstellung (ANSI) ausgehen - irgendein Default muss man ja haben.
Michael Justin
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#9

AW: XML mit UTF-8 encoded in nem Editor darstellen

  Alt 21. Aug 2012, 22:02
Zitat:
Mit welchem Tool schaffe ich es, das die XML-Datei gelesen und das "encoding" Attribut korrekt angewendet wird? Ziel: Ich möchte ohne BOM folgendes sehen
"Tool" im Sinne von Text-Editor? Als kostenlose Alternative zum doch etwas primitiven Notepad gibts ja auch noch Notepad++, das sollte für (fast) alle Anforderungen genügen.
Wenns noch etwas komfortabler seins soll, den guten, alten, zwar nicht kostenlosen, aber dennoch lohnenswerten UltraEdit.
Oder, wenn du den Speicherplatz einer kompletten IDE nicht scheust, das kostenlose Netbeans, das kann mit XMLs richtig gut umgehen
(und ist auch sonst ein unglaublich praktisches Tool für alle möglichen Sachen, nicht nur fürs reine Programmieren, ich wünschte, die Delphi-IDE wäre so *g*)

Geändert von blackfin (21. Aug 2012 um 22:08 Uhr)
  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 21:42 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