static Encoding GetEncodingFromBuffer (byte[] buffer, int length, ref int preambleLength)
{
var encodings_with_preamble = new [] { Encoding.UTF8, Encoding.UTF32, Encoding.Unicode };
foreach (var enc in encodings_with_preamble) {
if ((preambleLength = StartsWith (buffer, length, enc.GetPreamble ())) != 0)
return enc;
}
return null;
}