擅长:python、mysql、java
<p><strong>Python 3</strong></p>
<p>调用<code>urllib.parse.unquote</code>已返回Unicode字符串:</p>
<pre><code>>>> urllib.parse.unquote("pe%20to%C5%A3i%20mai")
'pe toţi mai'
</code></pre>
<p>如果没有得到这个结果,那一定是代码中的错误。请张贴您的代码。在</p>
<p><strong>Python 2</strong></p>
<p>使用<code>decode</code>从bytestring获取Unicode字符串:</p>
^{pr2}$
<p>请记住,当您将Unicode字符串写入文件时,必须再次对其进行编码。您可以选择以UTF-8的形式写入文件,但如果需要,也可以选择不同的编码方式。您还必须记住在从文件读回时使用相同的编码。您可能会发现<code>codecs</code>模块对于在读写文件时指定编码很有用。在</p>
<pre><code>>>> import urllib2, codecs
>>> s = urllib2.unquote("pe%20to%C5%A3i%20mai").decode('utf-8')
>>> # Write the string to a file.
>>> with codecs.open('test.txt', 'w', 'utf-8') as f:
... f.write(s)
>>> # Read the string back from the file.
>>> with codecs.open('test.txt', 'r', 'utf-8') as f:
... s2 = f.read()
</code></pre>
<p>一个可能令人困惑的问题是,在交互式解释器中,Unicode字符串有时使用<code>\uxxxx</code>符号而不是实际字符来显示:</p>
<pre><code>>>> s
u'pe to\u0163i mai'
>>> print s
pe toţi mai
</code></pre>
<p>这并不意味着字符串是“错误的”。这就是翻译的工作方式。在</p>