title: Reading UTF-8 with BOM using Python CSV module causes unwanted extra characters
body: <p>I am trying to read a CSV file with Python with the following code:</p>
  
  <pre><code>with open("example.txt") as f:
     c = csv.reader(f)
     for row in c:
        print row
  </code></pre>
  
  <p>My <code>example.txt</code> has only the following content:</p>
  
  <pre>
  Hello world!
  </pre>
  
  <p>For UTF-8 or ANSI encoded files, this gives me the expected output:</p>
  
  <pre><code>&gt; ["Hello world!"]
  </code></pre>
  
  <p>But if I save the file as UTF-8 with BOM I get this output:</p>
  
  <pre><code>&gt; ["\xef\xbb\xbfHello world!"]
  </code></pre>
  
  <p>Since I do not have any control over what files the user will use as input, I would like this to work with BOM as well. How can I fix this problem? Is there anything I need to do to ensure that this works for other encodings as well?</p>