title: Python: Read German/Spanish CSV files with UTF-8 encoding
body: <p>I have a question regarding opening and reading a CSV file with encoded in utf-8 using Python. I spent most of the day browsing Stackoverflow topics and the Python csv module but I can't seem to find the right solution. My CSV file contains Spanish and German words with 'special' characters (ñ,é,etc.) , here is a snippet of my file:</p>
  
  <pre><code>english_person,spanish_M,spanish_F,german_person
  woman,mujer ,mujer ,Frau 
  strong,fuerte ,fuerte ,stark 
  boy,niño ,niño ,Junge 
  </code></pre>
  
  <p>Simply trying to read it with the codecs module doesn't work:</p>
  
  <pre><code>import csv
  import codecs
  
  f = codecs.open('file.csv', 'rb', encoding='utf-8')
  reader = csv.reader(f)
  for line in reader:
      print line
  </code></pre>
  
  <p>I get this error:</p>
  
  <pre><code>UnicodeEncodeError: 'ascii' codec can't encode character u'\ufeff' in position 0: ordinal not in range(128)
  </code></pre>
  
  <p>So, I downloaded the unicodecsv module and attempt to read the file like this:</p>
  
  <pre><code>import unicodecsv
  
  myfile = open('file.csv')
  data = unicodecsv.reader(myfile, encoding='utf-8', delimiter=';')
  for row in data:                                                 
      print row
  </code></pre>
  
  <p>I luckily don't get an error anymore, but I still get these strange characters in my output (in the last line):</p>
  
  <pre><code>[u'\ufeffenglish_person,spanish_M,spanish_F,german_person']
  [u'woman,mujer ,mujer ,Frau ']
  [u'strong,fuerte ,fuerte ,stark ']
  [u'boy,ni\xf1o ,ni\xf1o ,Junge ']
  </code></pre>
  
  <p>What is going on and how can I solve this? Thank you for your help!</p>