Entfernen Byte Order Mark aus der Datei.ReadAllBytes (byte[])

Ich habe einen HTTPHandler, dass sich der Lektüre in einem Satz von CSS-Dateien und Sie zu kombinieren und dann Gzip. Jedoch, einige der CSS-Dateien enthalten eine Byte Order Mark (durch einen bug im TFS 2005 auto merge) und im FireFox die Stückliste wird Lesen als Teil des eigentlichen Inhalts, so ist es vermasseln meiner Klasse Namen etc. Wie kann ich die Streifen aus dem BOM-Zeichen? Gibt es eine einfache Möglichkeit dies zu tun, ohne manuell gehen durch das byte-array auf der Suche nach ""?

Ist die Stückliste, die in den eigentlichen text selbst, oder nur am Anfang? Ich wäre überrascht, wenn es irgendwo anders als am Anfang der Daten - in dem Fall einfach ignorieren die ersten 3 bytes (unter der Annahme UTF-8) sollte den trick tun.
FWIW, du könntest die Dateien öffnen in Notepad++, und speichern Sie Sie ohne die Byte Order Mark. Es ist, was ich tun musste, um in diese Frage.
Ich schrieb die folgenden Beitrag nach kommen über dieses Problem. Im wesentlichen Lesen, anstatt in die rohen bytes der Datei-Inhalt mit der BinaryReader Klasse, ich benutze die StreamReader-Klasse mit einem bestimmten Konstruktor, der entfernt automatisch die byte-order-mark-Zeichen von den textuellen Daten, die ich bin versucht zu Holen.

InformationsquelleAutor JC Grubbs | 2008-11-13

Schreibe einen Kommentar