擅长:python、mysql、java
<p><code>unicode</code>字符串可以<em>编码到字节<code>str</code>。<br/>
<code>str</code>可以被<em>解码为<code>unicode</code>字符串。在</p>
<p>当您有一个<code>u''</code>字符串文本时,<em>或</em>当您<code>import unicode_literals</code>时,所有的字符串文本都将是<code>unicode</code>字符串。你只能对那些代码进行编码,而不是<code>decode</code>。当您尝试<code>decode</code>一个已经解码的<code>unicode</code>字符串时,您得到的错误源于隐式转换。在</p>
<pre><code>>>> p1.encode('utf-8')
'E:\\filemanager\\data\\c - \xe5\x89\xaf\xe6\x9c\xac'
</code></pre>
<p><code>\x35…</code>表示字符串的原始字节(<code>str</code>)。在</p>
^{pr2}$
<p>这是一个<code>unicode</code>文本,字面意思是“\xe5…”。<br/>
当有原始字节表示时,需要确保Python将其视为<code>str</code>,而不是<code>unicode</code>:</p>
<pre><code>>>> p2 = b'E:\\filemanager\\data\\c - \xe5\x89\xaf\xe6\x9c\xac'
>>> p2.decode('utf-8')
u'E:\\filemanager\\data\\c - \u526f\u672c'
</code></pre>
<p>前缀<code>b</code>将文本标记为<code>str</code>,可以将其解码为<code>unicode</code>。在</p>
<p><code>u''</code>,<code>''</code>与<code>unicode_literals</code>和{<cd22>}是<code>unicode</code>→<code>encode</code>到{<cd2>}<br/>
<code>b''</code>和{<cd27>}是<code>str</code>→<code>decode</code>到{<cd1>}</p>