UTF-8 oder ISO-8859-1 in XML

Wir haben eine Anwendung, die eine Textzeichenfolge, die von einem Benutzer in ein Webformular eingegeben und in XML verpackt wird, nimmt. Nur um die Dinge ein wenig zu verwirren, wird die XML als Text der Outlook-E-Mail-Nachricht gesendet.

Da die Benutzer fast alles in das Webformular einfügen können (in der Regel aus Word), kann die Textzeichenfolge Zeichen enthalten, die nicht ASCII (7 Bit) zeichen, wie sie zum Öffnen und Schließen von doppelten Anführungszeichen verwendet werden.

Die Zeichenfolge ist intakt per E-Mail, aber wenn wir den Microsoft XML-Parser verwenden, beschwert sie sich (zu Recht), dass der XML-Code ungültige Zeichen enthält.

Eine schnelle Lösung ist, encoding="iso-8859-1" in den Header zu setzen. Ich frage mich jedoch, ob es besser wäre, die XML-Datei zu Beginn im echten UTF-8-Format zu kodieren, da ich Artikel gelesen habe, die sagen, dass es für eine harmonischere Welt besser wäre, wenn jedes XML-Dokument in UTF-8 kodiert wäre?

Aber... Werden wir Probleme haben, da das XML-Dokument tatsächlich über den Text einer E-Mail-Nachricht übertragen wird? Ich verstehe, dass UTF-8 ein codierendes System mit variabler Bytelänge ist, von dem ich annehme, dass es 7 Bit ASCII- und Escapte-Zeichen verwendet, um anzuzeigen, "es gibt mehr Daten".

Eine weitere Option besteht darin, auf UTF-8 festzulegen, aber Nicht-ASCII-Zeichen durch die &#nnn ersetzen. Format.

Jeder Rat in diesem ziemlich komplizierten Bereich geschätzt.

Cheers, Rob.

Antwort auf "UTF-8 oder ISO-8859-1 in XML " 2 von antworten

Ich würde wahrscheinlich versuchen, UTF-8 zu verwenden, wann immer möglich - es deckt einfach mehr Boden ab und ist flexibler als ISO-8859-1, das z.B. osteuropäische Charaktere schon ersticken wird (versuchen Sie, Jiři oder so etwas in ISO-8859-1 zu schreiben - es wird kläglich scheitern).

Also, wenn Sie wirklich versuchen wollen, zu ändern (was ich applaudiere!), dann würde ich UTF-8 gehen und nur zurück zu ISO-8859-1, wenn Sie wirklich nicht machen können UTF-8 arbeiten.

MArc

Dies könnte meine Erfahrung voreingenommen, da jedes Programm, das UTF-8 nicht vollständig unterstützt, als Mist betrachtet würde und dazu neigt, hier nicht verwendet zu werden.

Hier von außerhalb des englischen-nur-Landes{1} kann ich bestätigen, dass UTF-8 works fine everywhere and has done so for many, many years. I have trouble remembering since when any überall gut funktioniert und das seit vielen, vielen Jahren. Ich habe Schwierigkeiten, mich daran zu erinnern, seit wann irgendwelche -32- verkrüppelten E-Mails durch des 8. Bits (was zu Erfindungen wie -33- führt (die im Grunde das Symptom behebten, anstatt das Problem zu lösen)). Das geschah mit Sicherheit Mitte der 90er Jahre, obwohl UTF-8 schnell an Popularität gewann und iso-8859-1 ersetzte. Ich erinnere mich nicht, wann ich gewechselt habe, aber ich denke, es war mindestens vor dem Jahr 2000.

Apropos iso-8859-1, es wird nicht in der Lage sein, alle möglichen Eingaben von Ihren Benutzern abzudecken. Je nach Sprache können andere Iso-8859-Varianten benötigt werden (z. B. für Finnisch und Walisisch), und trotzdem unterstützt die 8859-Familie keine Sprachen wie Chinesisch. UTF-8 in der anderen Hand sollte alles abdecken, so dass ich stark empfehlen, dass iso-8859-1.

{1}