擅长:python、mysql、java
<blockquote>
<p>Why did the decode("ascii") give out a unicode string?</p>
</blockquote>
<p>因为这就是</em>的<code>decode</code><em>意义:它将字节字符串(如ASCII字符串)解码为unicode。</p>
<p>在第二个例子中,您试图“解码”一个已经是unicode的字符串,但没有效果。不过,要将其打印到终端,Python必须将其编码为默认编码,即ASCII,但由于没有显式地执行该步骤,因此没有指定'ignore'参数,因此会产生无法对非ASCII字符进行编码的错误。</p>
<p>所有这些的诀窍是记住<code>decode</code>接受一个经过编码的bytestring并将其转换为Unicode,而<code>encode</code>则相反。如果您理解<strong>Unicode不是一种编码,则可能会更容易。</p>