Wie kann ich erkennen, ob eine .NET StreamReader fand ein UTF8-BOM an den zugrunde liegenden stream?
Bekomme ich eine FileStream(filename,FileMode.Open,FileAccess.Read,FileShare.ReadWrite)
und dann ein StreamReader(stream,true)
.
Gibt es einen Weg wie ich überprüfen kann, ob der stream begann mit einem UTF8-BOM?
Ich bin zu bemerken, dass die Dateien ohne BOM gelesen werden als UTF8 durch den StreamReader.
Wie kann ich Sie auseinander?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Statt hardcoding der bytes, es ist schöner, die API zu nutzen
if (preamble.Where((p, i) => bytes.Length > i && p != bytes[i]).Any())
oder was auch immer schwimmt Ihr Boot.Funktioniert diese Hilfe? Überprüfen Sie die ersten drei bytes der Datei:
Können Sie erkennen, ob die
StreamReader
begegnet einer Stückliste durch initialisieren es mit einer BOM-weniger UTF8-Kodierung und überprüfung, um zu sehen, obCurrentEncoding
änderungen nach dem ersten Lesen.