擅长:python、mysql、java
<p>这只是个误会。在</p>
<p><strong>这是一个unicode字符串:<code>x = u'\u1212'</code></strong></p>
<p>当您调用<code>print x</code>时,它将打印其字符(<code>ሒ</code>),如图所示。如果您只调用x,它将显示它的<code>repr</code>表示:</p>
<pre><code>u'\u1212'
</code></pre>
<p>世界上一切都很好。在</p>
<p><strong>这是一个ascii字符串:<code>y = "\u1212"</code></strong></p>
<p>当您调用<code>print y</code>时,它将打印其值(<code>\u1212</code>),如图所示。如果您只调用x,它将显示它的<code>repr</code>表示:</p>
^{pr2}$
<p>请注意双斜杠(<code>\\</code>)表示斜杠正在转义。在</p>
<p><strong>那么,让我们看看下面的函数调用:<code>print unicode('\u1212')</code></strong></p>
<p>这是一个函数调用,我们可以用变量替换字符串,因此我们将使用等价:</p>
<pre><code>y = "\u1212"
print unicode(x)
</code></pre>
<p>但是正如上面的第二个例子,<code>y</code>是一个ascii字符串,在内部被管理为'\udfgdfg',它根本不是unicode字符串。所以<code>'\\udfgdfg'</code>的unicode表示是完全相同的。所以为什么它的行为不正确。在</p>