Requests: UnicodeEncodeError: 'рд▓реИрдЯрд┐рди -1' рдХреЛрдбреЗрдХ рд╡рд░реНрдгреЛрдВ рдХреЛ рдПрдиреНрдХреЛрдб рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 20 рджрд┐рд╕ре░ 2013  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: psf/requests

рдЕрдиреБрд░реЛрдз рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╣реИред
рдЬрдм рдореИрдВ рдЪреАрдиреА рд╡рд░реНрдг рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдХреЛ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Traceback (most recent call last):
  File "X/threading.py", line 639, in _bootstrap_inner
  File "X/threading.py", line 596, in run
  File "C:\Users\Administrator\Dropbox\Sublime3056\Data\Packages\SublimeApex\salesforce\api.py", line 546, in execute_anonymous
    headers=headers)
  File "C:\Users\Administrator\Dropbox\Sublime3056\Data\Packages\SublimeApex\requests\api.py", line 88, in post
    return request('post', url, data=data, **kwargs)
  File "C:\Users\Administrator\Dropbox\Sublime3056\Data\Packages\SublimeApex\requests\api.py", line 44, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\Users\Administrator\Dropbox\Sublime3056\Data\Packages\SublimeApex\requests\sessions.py", line 338, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Users\Administrator\Dropbox\Sublime3056\Data\Packages\SublimeApex\requests\sessions.py", line 441, in send
    r = adapter.send(request, **kwargs)
  File "C:\Users\Administrator\Dropbox\Sublime3056\Data\Packages\SublimeApex\requests\adapters.py", line 292, in send
    timeout=timeout
  File "C:\Users\Administrator\Dropbox\Sublime3056\Data\Packages\SublimeApex\requests\packages\urllib3\connectionpool.py", line 428, in urlopen
    body=body, headers=headers)
  File "C:\Users\Administrator\Dropbox\Sublime3056\Data\Packages\SublimeApex\requests\packages\urllib3\connectionpool.py", line 280, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "X/http/client.py", line 1049, in request
  File "X/http/client.py", line 1086, in _send_request
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 1632-1633: ordinal not in range(256)

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рддреЛ, рдПрд╕рдЯреА 3, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рд╕рдВрд╢реЛрдзрди рдирд╣реАрдВред рдареАрдХ рд╣реИ, рдпрд╣ рд╣рдореЗрдВ рдХреБрдЫ рджреЗрддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, Sublime Text 3 Python 3.3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, Python 2.7 рдХрд╛ рдирд╣реАрдВ (рдЬреЛ Sublime Text 2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕рдмреНрд▓рд┐рдореЗ рдПрдкреЗрдХреНрд╕ рдореЗрдВ рд╕рднреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдпреВрдирд┐рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рд╣реИрдВред

рдпрджрд┐ рдЖрдк Python 3.3 http.client рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкрд╛рдПрдВрдЧреЗ рдХрд┐ _send_request() рдлрд╝рдВрдХреНрд╢рди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = dict.fromkeys([k.lower() for k in headers])
skips = {}
if 'host' in header_names:
    skips['skip_host'] = 1
if 'accept-encoding' in header_names:
    skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

if body is not None and ('content-length' not in header_names):
    self._set_content_length(body)
for hdr, value in headers.items():
    self.putheader(hdr, value)
if isinstance(body, str):
    # RFC 2616 Section 3.7.1 says that text default has a
    # default charset of iso-8859-1.
    body = body.encode('iso-8859-1')
self.endheaders(body)

рдЕрдм, ISO-8859-1 рд▓реИрдЯрд┐рди-1 рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдирд╛рдо рд╣реИ, рдЬреЛ рд╡рд╣ рдХреЛрдбреЗрдХ рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╣рдо рдкрд░реЗрд╢рд╛рди рд╣реИрдВред рд╣рдореЗрдВ рдЬреЛ рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓реА рд╣реИ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рд╕рдмреНрд▓рд┐рдореЗ рдПрдкреЗрдХреНрд╕ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдПрдХ рдпреВрдирд┐рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧ рдмреЙрдбреА рдкреНрд░рджрд╛рди рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕реЗ httplib рдХреЛ рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред RFC 2616 рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЗрддреЗ рд╣реБрдП, рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд▓реИрдЯрд┐рди -1 рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рдЪреАрдиреА рд╡рд░реНрдг рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИред рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ, рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдкреНрд░рд╢реНрди рдореЗрдВ рдЕрдкрд╡рд╛рдж рдорд┐рд▓рддрд╛ рд╣реИред

рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╕рдмреНрд▓рд┐рдореЗ рдПрдкреЗрдХреНрд╕ рд╣реЗрдбрд░ рдореЗрдВ рджрд╛рд╡рд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдпреВрдЯреАрдПрдл -8 рдПрдиреНрдХреЛрдбреЗрдб рдбреЗрдЯрд╛ (рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЭреВрда рд╣реИ) рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рднреЗрдЬрддрд╛ рд╣реИ, рд╕рдмреНрд▓рд┐рдореЗ рдПрдкреЗрдХреНрд╕ рдЗрд╕реЗ рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдпреВрдЯреАрдПрдл -8 рдХреЗ рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рдПрдиреНрдХреЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реА рдХреЛрдИ рднреА рд▓рд╛рдЗрди (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ salesforce/api.py рдХреА рд▓рд╛рдЗрди 545) рдХреЛ рдЗрд╕ рддрд░рд╣ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдП:

response = requests.post(self.apex_url, soap_body.encode('utf-8'), verify=False, headers=headers)

рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рдЬреЛ рдореЗрд░реЗ рдирд┐рджрд╛рди рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рдПрдХ рддреНрд╡рд░рд┐рдд рдирдореВрдирд╛ рдХреЛрдб рд╣реИ рдЬреЛ рд╕рдорд╕реНрдпрд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ:

a = "\u13E0\u19E0\u1320"
a.encode('latin1')  # Throws UnicodeEncodeError, proves that this can't be expressed in ISO-8859-1.
a.encode('utf-8')  # Totally fine.
r = requests.post('http://httpbin.org/post', data=a)  # Using unicode string, throws UnicodeEncodeError blaming Latin1.
r = requests.post('http://httpbin.org/post', data=a.encode('utf-8'))  # Works fine.

рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рд╕рд╛рде рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдиреБрд░реЛрдз рдмрдЧ рдирд╣реАрдВ рд╣реИред =)

рд╕рднреА 7 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдлрд╝рд╛рдЗрд▓ "X/http/client.py"

рдХреНрдпрд╛ рдЖрдкрдиреЗ X рд▓рд┐рдЦрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрде рд╣реИ? рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдЖрдкрдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ urllib3 рдХреЛ рднреНрд░рдорд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЖрдкрдХреЛ рд╢рд╛рдпрдж рдЗрд╕реЗ bugs.python.org рдкрд░ рдЙрдард╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ httplib рд╕реЗ рдмрдврд╝ рд░рд╣рд╛ рд╣реИ (рдпрд╛ http рдкрд╛рдпрдерди 3 рдкрд░ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ)ред

@sigmavirus24 ,

рдореИрдВрдиреЗ рдЙрджрд╛рддреНрдд рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдпрджрд┐ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХрдерди рдореЗрдВ рд╕рд╛рдмреБрди_рдмреЙрдбреА рдореЗрдВ рдХреЛрдИ рдЪреАрдиреА рд╡рд░реНрдг рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреЛрдИ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

response = requests.post(self.apex_url, soap_body, verify=False, headers=headers)

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЬрдм рддрдХ рдХрд┐ рдЖрдк Sublime Apex рдХреЗ рдХрд┐рд╕реА рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдирдХреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рднрдВрдбрд╛рд░ рдореЗрдВ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЕрдиреБрд░реЛрдз _not_ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг 1.2.3 рд╣реИред рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЙрджрд╛рддреНрдд рдкрд╛рда рдХреЗ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдпрд╣ рдЙрджрд╛рддреНрдд рдкрд╛рда рд╣реИ 3056

рддреЛ, рдПрд╕рдЯреА 3, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рд╕рдВрд╢реЛрдзрди рдирд╣реАрдВред рдареАрдХ рд╣реИ, рдпрд╣ рд╣рдореЗрдВ рдХреБрдЫ рджреЗрддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, Sublime Text 3 Python 3.3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, Python 2.7 рдХрд╛ рдирд╣реАрдВ (рдЬреЛ Sublime Text 2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕рдмреНрд▓рд┐рдореЗ рдПрдкреЗрдХреНрд╕ рдореЗрдВ рд╕рднреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдпреВрдирд┐рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рд╣реИрдВред

рдпрджрд┐ рдЖрдк Python 3.3 http.client рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкрд╛рдПрдВрдЧреЗ рдХрд┐ _send_request() рдлрд╝рдВрдХреНрд╢рди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = dict.fromkeys([k.lower() for k in headers])
skips = {}
if 'host' in header_names:
    skips['skip_host'] = 1
if 'accept-encoding' in header_names:
    skips['skip_accept_encoding'] = 1

self.putrequest(method, url, **skips)

if body is not None and ('content-length' not in header_names):
    self._set_content_length(body)
for hdr, value in headers.items():
    self.putheader(hdr, value)
if isinstance(body, str):
    # RFC 2616 Section 3.7.1 says that text default has a
    # default charset of iso-8859-1.
    body = body.encode('iso-8859-1')
self.endheaders(body)

рдЕрдм, ISO-8859-1 рд▓реИрдЯрд┐рди-1 рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдирд╛рдо рд╣реИ, рдЬреЛ рд╡рд╣ рдХреЛрдбреЗрдХ рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╣рдо рдкрд░реЗрд╢рд╛рди рд╣реИрдВред рд╣рдореЗрдВ рдЬреЛ рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓реА рд╣реИ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рд╕рдмреНрд▓рд┐рдореЗ рдПрдкреЗрдХреНрд╕ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдПрдХ рдпреВрдирд┐рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧ рдмреЙрдбреА рдкреНрд░рджрд╛рди рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕реЗ httplib рдХреЛ рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред RFC 2616 рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЗрддреЗ рд╣реБрдП, рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд▓реИрдЯрд┐рди -1 рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рдЪреАрдиреА рд╡рд░реНрдг рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИред рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ, рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдкреНрд░рд╢реНрди рдореЗрдВ рдЕрдкрд╡рд╛рдж рдорд┐рд▓рддрд╛ рд╣реИред

рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╕рдмреНрд▓рд┐рдореЗ рдПрдкреЗрдХреНрд╕ рд╣реЗрдбрд░ рдореЗрдВ рджрд╛рд╡рд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдпреВрдЯреАрдПрдл -8 рдПрдиреНрдХреЛрдбреЗрдб рдбреЗрдЯрд╛ (рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЭреВрда рд╣реИ) рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рднреЗрдЬрддрд╛ рд╣реИ, рд╕рдмреНрд▓рд┐рдореЗ рдПрдкреЗрдХреНрд╕ рдЗрд╕реЗ рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдпреВрдЯреАрдПрдл -8 рдХреЗ рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рдПрдиреНрдХреЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реА рдХреЛрдИ рднреА рд▓рд╛рдЗрди (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ salesforce/api.py рдХреА рд▓рд╛рдЗрди 545) рдХреЛ рдЗрд╕ рддрд░рд╣ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдП:

response = requests.post(self.apex_url, soap_body.encode('utf-8'), verify=False, headers=headers)

рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рдЬреЛ рдореЗрд░реЗ рдирд┐рджрд╛рди рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рдПрдХ рддреНрд╡рд░рд┐рдд рдирдореВрдирд╛ рдХреЛрдб рд╣реИ рдЬреЛ рд╕рдорд╕реНрдпрд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ:

a = "\u13E0\u19E0\u1320"
a.encode('latin1')  # Throws UnicodeEncodeError, proves that this can't be expressed in ISO-8859-1.
a.encode('utf-8')  # Totally fine.
r = requests.post('http://httpbin.org/post', data=a)  # Using unicode string, throws UnicodeEncodeError blaming Latin1.
r = requests.post('http://httpbin.org/post', data=a.encode('utf-8'))  # Works fine.

рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рд╕рд╛рде рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдиреБрд░реЛрдз рдмрдЧ рдирд╣реАрдВ рд╣реИред =)

рдзрдиреНрдпрд╡рд╛рджред

r = request.post(' http://httpbin.org/post ', data=a.encode('utf-8'))
рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА,
рдзрдиреНрдпрд╡рд╛рдж!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

remram44 picture remram44  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jakul picture jakul  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Gonzalliz picture Gonzalliz  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jake491 picture jake491  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

justlurking picture justlurking  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ