title: Python requests not able to stream utf-8 encoded file
body: <p>I'm trying to take advantage of http streaming for a file with unicode characters, but I'm getting a <code>UnicodeEncodeError</code>:</p>
  
  <pre><code>&gt;&gt;&gt; requests.put(my_url, headers=my_headers, data=open('test.csv', 'r', encoding='utf-8'))
  Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
    File ".../python3.5/site-packages/requests/api.py", line 126, in put
      return request('put', url, data=data, **kwargs)
    File ".../python3.5/site-packages/requests/api.py", line 58, in request
      return session.request(method=method, url=url, **kwargs)
    File ".../python3.5/site-packages/requests/sessions.py", line 518, in request
      resp = self.send(prep, **send_kwargs)
    File ".../python3.5/site-packages/requests/sessions.py", line 639, in send
      r = adapter.send(request, **kwargs)
    File ".../python3.5/site-packages/requests/adapters.py", line 438, in send
      timeout=timeout
    File ".../python3.5/site-packages/requests/packages/urllib3/connectionpool.py", line 600, in urlopen
      chunked=chunked)
    File ".../python3.5/site-packages/requests/packages/urllib3/connectionpool.py", line 356, in _make_request
      conn.request(method, url, **httplib_request_kw)
    File ".../python3.5/http/client.py", line 1107, in request
      self._send_request(method, url, body, headers)
    File ".../python3.5/http/client.py", line 1152, in _send_request
      self.endheaders(body)
    File ".../python3.5/http/client.py", line 1103, in endheaders
      self._send_output(message_body)
    File ".../python3.5/http/client.py", line 936, in _send_output
      self.send(message_body)
    File ".../python3.5/http/client.py", line 904, in send
      datablock = datablock.encode("iso-8859-1")
  UnicodeEncodeError: 'latin-1' codec can't encode character '\u2122' in position 6375: ordinal not in range(256)
  </code></pre>
  
  <p>I get the error whether or not I include <code>encoding='utf-8'</code>. How can I send this file in a way that doesn't require loading the entire file into memory but still gets around the unicode encoding issue?</p>