擅长:python、mysql、java
<p>您的客户机的行为应该是这样的,例如,作为服务器运行<code>nc -l 8888</code>,并发出请求:</p>
<pre><code>import requests
requests.post('http://localhost:8888', data={u'post': u'Andr\xe9 T\xe9chin\xe9'})
</code></pre>
<p>显示:</p>
<pre><code>POST / HTTP/1.1
Host: localhost:8888
Content-Length: 33
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate, compress
Accept: */*
User-Agent: python-requests/1.2.3 CPython/2.7.3
post=Andr%C3%A9+T%C3%A9chin%C3%A9
</code></pre>
<p>您可以检查它是否正确:</p>
<pre><code>>>> import urllib
>>> urllib.unquote_plus(b"Andr%C3%A9+T%C3%A9chin%C3%A9").decode('utf-8')
u'Andr\xe9 T\xe9chin\xe9'
</code></pre>
<ul>
<li><p>检查服务器是否正确解码请求。您可以尝试指定字符集:</p>
<pre><code>headers = {"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"}
</code></pre>
<p>正文只包含ascii字符,因此不会造成伤害,正确的服务器无论如何都会忽略<code>x-www-form-urlencoded</code>类型的任何参数。在<a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#url-encoded-form-data">URL-encoded form data</a>中查找血淋淋的细节</p></li>
<li><p>检查问题是否为显示伪影,即值是否正确,但显示不正确</p></li>
</ul>