<p>比较这两个函数(<a href="http://docs.python.org/2/library/functions.html#unicode">here</a>和<a href="http://docs.python.org/2/library/stdtypes.html#str.decode">here</a>)的文档,这两个方法之间的差别似乎非常小。<code>unicode</code>函数被记录为</p>
<blockquote>
<p>If encoding and/or errors are given, unicode() will decode the object
which can either be an 8-bit string or a character buffer using the
codec for encoding. The encoding parameter is a string giving the name
of an encoding; if the encoding is not known, LookupError is raised.
Error handling is done according to errors; this specifies the
treatment of characters which are invalid in the input encoding. If
errors is 'strict' (the default), a ValueError is raised on errors,
...</p>
</blockquote>
<p>而<code>string.decode</code>的描述是这样的</p>
<blockquote>
<p>Decodes the string using the codec registered for encoding. encoding
defaults to the default string encoding. errors may be given to set a
different error handling scheme. The default is 'strict', meaning that
encoding errors raise UnicodeError. ...</p>
</blockquote>
<p>因此,唯一的区别似乎是<code>unicode</code>也适用于字符缓冲区,并且对于无效输入返回的错误不同(<code>ValueError</code>与<code>UnicodeError</code>)。另一个微小的区别在于向后兼容性:<code>unicode</code>被记录为“2.0版本中的新特性”,而<code>string.decode</code>是“2.2版本中的新特性”。在</p>
<p>综上所述,使用哪种方法似乎完全取决于口味。在</p>