/ / Wie entferne ich das Stücklistenzeichen aus meiner xml-Datei [duplicate] - xml, xslt, unicode, byte-order-mark

Wie entferne ich das BOM-Zeichen aus meiner XML-Datei [doppelt] - xml, xslt, Unicode, Byte-Order-Mark

Ich verwende xsl zur Steuerung der Ausgabe meiner XML-Datei, aber das Stücklistenzeichen wird hinzugefügt.

Antworten:

165 für die Antwort № 1
# vim file.xml
:set nobomb
:wq

18 für die Antwort № 2

Das Datei-Stücklistendetektor (Freeware für Windows) erleichtert das Entfernen der Bytereihenfolge.


2 für die Antwort № 3

Sie müssen dies nur in Ihre XSLT-Datei einfügen:

<xsl:output method="text"
encoding="ASCII"/>

1 für die Antwort № 4

Entfernen Sie die ersten zwei Bytes mit einem beliebigen Hex-Editor.


1 für die Antwort № 5

Das Entfernen des Stücklistensymbols von String mit XSLT ist ziemlich einfach:

<xsl:value-of select="translate(StringWithBOM,"","")"/>


0 für die Antwort № 6

Ich hatte den Eindruck, dass XML gefördert wirdin Unicode geschrieben werden, in einigen Unicode-Codierungen, und dass bestimmte Unicode-Codierungen angegeben sind, die eine anfängliche Bytereihenfolge-Marke enthalten. Ohne diese Bytereihenfolge wird Ihre Datei nicht mehr korrekt in einer Unicode-Kodierung und daher nicht mehr korrekt in XML kodiert. XML-Prozessoren sollten nicht nachgeben, um bei kleinsten Fehlern (z. B. einer falschen Unicode-Kodierung) sofort zu versagen. Welche Arten von XML-Prozessoren möchten Sie brechen?

Offensichtlich das Entfernen einer Bytereihenfolge von aBei einem utf-8-kodierten Dokument erscheint dieses Dokument als ASCII-kodiert (nicht Unicode), und einige Textprozessoren können nur ASCII-kodierte Dokumente verwenden. Arbeitest du damit?


0 für die Antwort № 7

Welche Ausgabecodierung wird von Ihrem XSL-Gerät verwendet? Welche Kodierung ist das Eingabedokument? Woher kommt die Eingabe und wo wurde sie in der Zwischenzeit gespeichert / hochgeladen / heruntergeladen?

XML und XSL sollten Standard utf-8 verwenden, wenn nichts anderes angegeben ist. Aber offensichtlich läuft hier etwas schief.

Möglicherweise wird das XML von einem Webserver bereitgestellt, der standardmäßig so eingestellt ist, dass er in ISO-8859-1 verwendet wird. Dies ist ein ziemlich guter Standard ... Pre-Unicode.

Etwas abseits, aber Joel 's sehr lehrreicher Artikel Über Textcodierungen war für mich ein Augenöffner. Es gibt eine Menge Leute, die ansonsten sehr schlau sind beim Programmieren, aber sie denken immer noch daran, dass es so etwas wie "reinen Text" gibt oder dass sie ihren Text "ASCII" oder "ANSI" nennen Müssen sich wirklich mit dem Problem auseinandersetzen, wenn Sie es noch nicht getan haben.