2009-08-15 7 views
4

Ich versuche, den Visual Studio-Editor zu verwenden, um XML-Dateien im Bereich Ressourcen einer Assembly in C# zu erstellen. Die Dateien erscheinen im XML-Editor vollkommen korrekt und berücksichtigen mein Schema (Erkennen der Elemente und Attribute). Wenn ich jedoch versuche, sie zu lesen (aus den Ressourcen), scheitern sie, weil sie am Anfang der Datei immer 3 falsche Zeichen haben (ï »¿oder #EF #BB #BF).Wie vermeide ich das Lesen der Byte Order Mark (BOM) in einer Resources-Datei in Visual Studio?

Diese Zeichen erscheinen NICHT im Editor, aber sie befinden sich in einem externen Binäreditor. Wenn ich sie manuell entferne, verhalten sich die Dateien richtig.

Was kann ich tun, um XML-Dateien im Bereich Ressourcen zuverlässig zu erstellen?

Nach dem ersten 2 Antworten ich die Frage zu

modifizierte

„Wie lese ich eine Ressourcen-Datei einschließlich der Bytereihenfolgemarkierung zu vermeiden?“

Antwort

1

Der Editor platziert den bekannten Unicode-Zeichenmarker, die sogenannte BOM (Byte Order Mark), am Anfang der Datei. Dies wird verwendet, um zu zeigen, was die korrekte Unicode-Kodierung der Datei verwendet - in diesem Fall ist es UTF-8, aber abhängig von der tatsächlichen Kodierung werden die Byte-Werte unterschiedlich sein.

9

XML-Editor erstellt eine XML-Datei standardmäßig mit der Codierung UTF-8 und fügt die XML-Deklaration:

<?xml version="1.0" encoding="utf-8" ?> 

Vermutlich es fügt auch die Codierung (die in UTF-8 3 Bytes, wie oben ist) . Die folgende Methode (von einem Freund gefunden) scheint das Bytes zu lesen, ohne die Codierung zu kennen:

String ss = new StreamReader(new MemoryStream(bytes), true).ReadToEnd(); 

und dies ist nun versuchen, nicht die Stückliste als Teil der Inhalte zu analysieren.

+3

Es wird versucht, die Stückliste zu analysieren. In der Tat verwendet es es, um den richtigen Typ der Codierung des Streams zu bestimmen, für den es bestimmt ist. – Abel

Verwandte Themen