擅长:python、mysql、java
<p>问题是<code>%C3%B1</code>的含义取决于字符串的编码。在</p>
<p>作为Unicode,它的意思是<code>ñ</code>。作为拉丁语-1,它也意味着<code>ñ</code>。作为UTF-8,它的意思是<code>ñ</code>。在</p>
<p>所以,在从UTF-8解码之前,您需要取消这些字符的转义。在</p>
<p>换句话说,在某个地方,你所做的相当于:</p>
<pre><code>u = urllib.unquote(s.decode('utf-8'))
</code></pre>
<p>别那样做。你应该做的是:</p>
^{pr2}$
<hr/>
<p>如果您使用的某个框架在看到字符串之前已经对其进行了解码,请重新编码、取消引用并重新解码:</p>
<pre><code>u = urllib.unquote(u.encode('utf-8')).decode('utf-8')
</code></pre>
<p>但是最好不要让框架来解码字符集,而是首先引用编码的字符串。在</p>