private static byte[] SyncBOM(byte[] originalBytes, byte[] newBytes) { bool originalHasBOM = HasBOM(originalBytes); bool newHasBOM = HasBOM(newBytes); if (originalHasBOM && !newHasBOM) { var extended = new byte[newBytes.Length + 3]; newBytes.CopyTo(extended, 3); BOM.CopyTo(extended, 0); newBytes = extended; } if (!originalHasBOM && newHasBOM) { var trimmed = new byte[newBytes.Length - 3]; Array.Copy(newBytes, 3, trimmed, 0, trimmed.Length); newBytes = trimmed; } return(newBytes); }