title: python requests downloading incorrect sound file from Google Translate
body: <p>I'm using the script below to download the Chinese 老師, but when I run it, I get a file different from the one present at that URL. I think this an encoding issue, but as I've specified UTF-8, I'm not sure what's happening. </p>
  
  <pre><code>#!/usr/bin/python
  # -*- coding: utf-8 -*-
  
  import requests
  
  url = "http://translate.google.com/translate_tts?tl=zh-CN&amp;q=老師"
  
  r = requests.get(url)
  
  with open('test.mp3', 'wb') as test:
      test.write(r.content)
  </code></pre>
  
  <p>UPDATE: </p>
  
  <p>As per @abarnert's suggestion, I've checked that the file is UTF-8 with BOM and tested the code with 'idna'. </p>
  
  <pre><code>#!/usr/bin/python3
  # -*- coding: utf-8 -*-
  
  import requests
  
  url_1 = "http://translate.google.com/translate_tts?tl=zh-CN&amp;q=老師"
  url_2 = "http://translate.google.com/translate_tts?tl=zh-CN&amp;q=\u8001\u5e2b"
  
  r_1 = requests.get(url_1)
  r_1_b = requests.get(url_1.encode('idna'))
  r_2 = requests.get(url_2)
  r_2_b = requests.get(url_2.encode('idna'))
  
  # This downloads nonsense:
  with open('r_1.mp3', 'wb') as test:
      test.write(r_1.content)
  
  # This throws the error specified at bottom:
  with open('r_1_b.mp3', 'wb') as test:
      test.write(r_1_b.content)
  
  # This parses the characters individually, producing
  # a file consisting of "u, eight, zero..." in Mandarin
  with open('r_2.mp3', 'wb') as test:
      test.write(r_2.content)
  
  # This produces a sound file consisting of "u, eight, zero, zero..." in Mandarin
  with open('r_2_b.mp3', 'wb') as test:
      test.write(r_2_b.content)
  </code></pre>
  
  <p>The error I'm getting is: </p>
  
  <pre><code>Traceback (most recent call last):
    File "/home/MZ/Desktop/tts3.py", line 12, in &lt;module&gt;
      r_1_b = requests.get(url_1.encode('idna'))
    File "/usr/lib64/python2.7/encodings/idna.py", line 164, in encode
      result.append(ToASCII(label))
    File "/usr/lib64/python2.7/encodings/idna.py", line 76, in ToASCII
      label = nameprep(label)
    File "/usr/lib64/python2.7/encodings/idna.py", line 21, in nameprep
      newlabel.append(stringprep.map_table_b2(c))
    File "/usr/lib64/python2.7/stringprep.py", line 197, in map_table_b2
      b = unicodedata.normalize("NFKC", al)
  TypeError: must be unicode, not str
  [Finished in 15.3s with exit code 1]
  </code></pre>