skipping Byte Order mark (BOM) when using Stream CopyTo

byte-order-mark, c#, file

Solution

Use the following method..

using (var output = File.Open(outputFile,FileMode.Append,FileAccess.Write))
      {
         foreach (var inputFile in inputFiles)
         {
           using (var input = File.OpenRead(inputFile))
           {
               input.Position = Encoding.Unicode.GetPreamble().Length;  //The encoding might be any type.
              input.CopyTo(output);
           }
         }
      }

Problem

I am trying to merge files into an output file and my individual files have the BOM on them, how can I get rid of it while using Stream.CopyTo method.. My code looks like this: ``` using (var output = File.Open(outputFile,FileMode.Append,FileAccess.Write)) { foreach (var inputFile in inputFiles) { using (var input = File.OpenRead(inputFile)) { input.CopyTo(output); } } } ```

Original source