擅长:python、mysql、java
<p>将unicode值<a href="http://www.python.org/dev/peps/pep-0393/" rel="nofollow">introduced by PEP-393</a>的内部转换为更节省空间的存储是出于<strong>性能原因</strong>。在</p>
<p>因此,它们对Python代码中unicode<code>str</code>值的编码和解码方式没有任何影响。从Python访问内部表示绝对没有意义。字符<code>A</code>存储为<code>41</code>、<code>4100</code>或{<cd5>},这取决于字符串中最高码位所需的空间大小,但它仍将以ASCII、Latin-1或UTF-8编码为<code>41</code>。在</p>
<p>除非您正在编写一个必须处理这种内部表示的C扩展,否则完全不必担心Python实际上是如何存储数据的。在</p>
<p>为了调试编码或解码问题,我将使用<a href="http://docs.python.org/3/library/functions.html#ascii" rel="nofollow">^{<cd7>} function</a>来表示仅使用ASCII码位和Python字符串文本转义符的字符串,或者您可以使用<a href="http://docs.python.org/3/library/functions.html#ord" rel="nofollow">^{<cd8>} function</a>将单个字符转换为每个代码点的整数。在</p>
<p>对于字节值,<a href="http://docs.python.org/3/library/binascii.html#binascii.hexlify" rel="nofollow">^{<cd9>} function</a>还可以方便地将一系列字节快速转换为十六进制表示。在</p>