擅长:python、mysql、java
<p>你混淆了“unicode”和“utf-8”。您的字符串<code>s</code>不是unicode;它是特定编码中的bytestring(但不是UTF-8,更可能是iso-8859-1或类似的)从bytestring到<code>unicode</code>是通过<em>解码</em>数据完成的,而不是<em>编码</em>。从unicode到bytestring是编码。也许你想让<code>s</code>成为一个unicode字符串:</p>
<pre><code>>>> s = u'ad\xc2-ven\xc2-ture'
>>> s.encode('utf8', 'ignore')
'ad\xc3\x82-ven\xc3\x82-ture'
</code></pre>
<p>或者,您可能希望将bytestring视为UTF-8,但忽略无效序列,在这种情况下,您将使用“ignore”作为错误处理程序对bytestring进行解码:</p>
^{pr2}$