Requests: UnicodeEncodeError: 'latin-1' codec can't encode characters in position 52-55: ordinal not in range(256)

Created on 20 Oct 2015  路  1Comment  路  Source: psf/requests

Requests 2.8.1

Python 3.5.0 (default, Sep 20 2015, 11:56:03)
[GCC 5.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
import requests
r = requests.post('https://2ch.hk/makaba/posting.fcgi', data='json=1&task=post&board=test&thread=80980710&comment=褌械褋褌')
Traceback (most recent call last):
File "", line 1, in
File "/usr/lib/python3.5/site-packages/requests/api.py", line 109, in post
return request('post', url, data=data, json=json, _kwargs)
File "/usr/lib/python3.5/site-packages/requests/api.py", line 50, in request
response = session.request(method=method, url=url, *_kwargs)
File "/usr/lib/python3.5/site-packages/requests/sessions.py", line 468, in request
resp = self.send(prep, *_send_kwargs)
File "/usr/lib/python3.5/site-packages/requests/sessions.py", line 576, in send
r = adapter.send(request, *_kwargs)
File "/usr/lib/python3.5/site-packages/requests/adapters.py", line 370, in send
timeout=timeout
File "/usr/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py", line 559, in urlopen
body=body, headers=headers)
File "/usr/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py", line 353, in _make_request
conn.request(method, url, *
httplib_request_kw)
File "/usr/lib/python3.5/http/client.py", line 1083, in request
self._send_request(method, url, body, headers)
File "/usr/lib/python3.5/http/client.py", line 1127, in _send_request
body = body.encode('iso-8859-1')
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 52-55: ordinal not in range(256)

Most helpful comment

Please do not attempt to send body data in unicode strings. You need to encode that before you send it: data='json=1&task=post&board=test&thread=80980710&comment=褌械褋褌'.encode('utf-8')

>All comments

Please do not attempt to send body data in unicode strings. You need to encode that before you send it: data='json=1&task=post&board=test&thread=80980710&comment=褌械褋褌'.encode('utf-8')

Was this page helpful?
0 / 5 - 0 ratings