SessionRedirectMixin.get_redirect_target got an error "UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc3 in position 8: invalid continuation byte"

Summary.
curl -d 'vpsname=111&vpspassword=222' 'http://admin.yunkv.com/vpsadm/selfvpslogin.asp'
works.

When I use python2+, it also works.
```#!/usr/bin/env python2
import requests
import json
data = {'vpsname':'111', 'vppassword':'222'}
url = 'http://admin.yunkv.com/vpsadm/selfvpslogin.asp'
req = requests.post(url, data=data)
print(req.history)
```

But I got error when I use python3.

## Expected Result

Success redirect to the location.

## Actual Result
got error:
```
Traceback (most recent call last):
  File "run.py", line 52, in <module>
    cli()
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "run.py", line 39, in reset_unreacheable
    vps_handler = VpsHandler(hostname, vps_dict[hostname])
  File "/Users/guoguo/Documents/code/vps_monitor/handler.py", line 19, in __init__
    self._login(vps_name, vps_password)
  File "/Users/guoguo/Documents/code/vps_monitor/handler.py", line 29, in _login
    r = self.session.post(url, data=data)
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/sessions.py", line 556, in post
    return self.request('POST', url, data=data, json=json, **kwargs)
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/sessions.py", line 509, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/sessions.py", line 641, in send
    history = [resp for resp in gen] if allow_redirects else []
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/sessions.py", line 641, in <listcomp>
    history = [resp for resp in gen] if allow_redirects else []
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/sessions.py", line 126, in resolve_redirects
    url = self.get_redirect_target(resp)
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/sessions.py", line 117, in get_redirect_target
    return to_native_string(location, 'utf8')
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/requests/_internal_utils.py", line 25, in to_native_string
    out = string.decode(encoding)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc3 in position 8: invalid continuation byte
```
## Reproduction Steps

```python
import requests

```

## System Information

    $ python -m requests.help

```
{
  "chardet": {
    "version": "3.0.4"
  },
  "cryptography": {
    "version": "1.5.3"
  },
  "idna": {
    "version": "2.6"
  },
  "implementation": {
    "name": "CPython",
    "version": "2.7.14"
  },
  "platform": {
    "release": "17.4.0",
    "system": "Darwin"
  },
  "pyOpenSSL": {
    "openssl_version": "100020af",
    "version": "16.2.0"
  },
  "requests": {
    "version": "2.18.4"
  },
  "system_ssl": {
    "version": "100020ff"
  },
  "urllib3": {
    "version": "1.22"
  },
  "using_pyopenssl": true
}
```

This command is only available on Requests v2.16.4 and greater. Otherwise,
please provide some basic information about your system (Python version,
operating system, &c).


Hi @sumous,

The values you've provided in the example don't include the byte range or sequence from the traceback. My guess is there's a user name or password that's encoded in something other than UTF-8, perhaps ISO-8859-5 or KOI8-R if those are the OS default on your machine. We'd need a more accurate example to determine the precise issue here.

As a general case though, we usually suggest manually encoding the data yourself and passing Requests binary. This removes any guess work on our part, and prevents accidental data corruption.