擅长:python、mysql、java
<pre><code>value = u'\u2019'.decode( 'utf-8', 'ignore' )
</code></pre>
<p>字节串被解码成Unicode字符串。在</p>
<p>Unicode字符串被编码成字节字符串。在</p>
<p>因此,如果您说<code>someunicodestring.decode</code>,它会尝试将Unicode字符串强制为字节字符串,以便能够对其进行解码(回到Unicode!)。作为一个隐式转换,此编码步骤将采用默认编码,它可能在不同的环境中有所不同,并且很可能是“safe”值<code>ascii</code>,这肯定会产生您提到的错误,因为ASCII不能包含字符U+2019。依赖默认编码几乎永远不是一个好主意。在</p>
<p>所以尝试<code>decode</code>一个Unicode字符串是没有意义的。我敢肯定你的意思是:</p>
^{pr2}$
<p>(<code>ignore</code>对于编码到UTF-8是多余的,因为此编码没有不能表示的字符。)</p>