<p>你的假设是不正确的。Python源代码的开头是:</p>
<pre><code># -*- coding: utf-8 -*-
</code></pre>
<p>在这种情况下,<code>Û</code>不是</strong>等价于<code>\xdb</code>;而是两个字节:</p>
^{pr2}$
<p>Python在这里是完全一致的:</p>
<pre><code>>>> import hashlib
>>> hashlib.md5('\xc3\x9b').hexdigest()
'31ecfb09f120720a55d96a2034f5d00b'
>>> hashlib.md5('\xdb').hexdigest()
'98fd00d788afe2a5fa5e4f8e1666638b'
</code></pre>
<p>在Java中,您开始使用Unicode代码点,将其转换为UTF-8字节:</p>
<pre><code>"\u00db".getBytes()
</code></pre>
<p>Python等价物将使用<code>unicode</code>字符串文本和<code>\uhhhh</code>或{<cd5>}转义序列:</p>
<pre><code>>>> u'\u00db'.encode('utf8')
'\xc3\x9b'
>>> u'\xdb'.encode('utf8')
'\xc3\x9b'
</code></pre>
<p>注意<code>u</code>前缀以生成<code>unicode</code>字符串。<code>\xdb</code>没有<code>u</code>前缀是一个<em>字节串</em>,而不是Unicode码位,只有当你将它解码为<em>拉丁语1</em>时,才会得到相同的Unicode字符串:</p>
<pre><code>>>> '\xdb'.decode('latin1')
u'\xdb'
>>> '\xdb'.decode('latin1').encode('utf8')
'\xc3\x9b'
</code></pre>
<p>您可能想学习Python和Unicode;请参见:</p>
<ul>
<li><p><a href="http://docs.python.org/2/howto/unicode.html" rel="noreferrer">Python Unicode HOWTO</a></p></li>
<li><p><a href="http://nedbatchelder.com/text/unipain.html" rel="noreferrer">Pragmatic Unicode</a>作者:Ned Batchelder</p></li>
</ul>
<p>为了完整起见:</p>
<ul>
<li><a href="http://joelonsoftware.com/articles/Unicode.html" rel="noreferrer">The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)</a>作者:乔尔斯波尔斯基</li>
</ul>