<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                python中使用字節類型(bytes)來表示二進制信息,它是由單個字節構成的不可變序列。 字節類型的字面量的語法與字符串大致相同,只是添加了一個前綴`b`。 字節類型的字面量中只允許`ASCII`字符。 任何超過`127`的二進制值使用前綴`\x`和十六進制來表示。 ## 編碼與解碼 字符串轉換為對應的編碼稱為編碼,根據字符編碼轉換為字符叫解碼。 ### 編碼 字符串方法`.encode()`可以將字符串轉換為對應的編碼的`bytes`對象。 ```python >>> res = 'abc123'.encode('ascii') >>> res b'abc123' >>> type(res) bytes ``` 因為都是ascii碼字符,使用本身字面量來表示,所以看起來和字符串沒有什么區別,除了多了一個前綴`b`。 ```python >>> res = '中'.encode('gbk') >>> res b'\xd6\xd0' >>> len(res) 2 ``` `中`字在`gbk`中的編碼為`54992`,二進制表示為: ```python >>> bin(54992) '0b1101011011010000' ``` 總共16位,需要兩個字節來表示,按照16進制表示第一個字節為: ```python >>> hex(0b11010110) '0xd6' ``` 第二個字節為: ```python >>> hex(0b11010000) '0xd0' ``` 換成`\x`前綴后為: ``` '\xd6\xd0' ``` 是不是跟上面的結果一樣。 ```python >>> res = '中'.encode('utf-8') b'\xe4\xb8\xad' ``` `utf-8`碼,三個字節表示一個漢字。 ### 解碼 bytes對象方法`.decode()`可以將字節對象轉換為對應編碼的字符串對象。 ```python >>> b'\xd6\xd0'.decode('gbk') '中' ``` 注意:不是所有的二進制信息都可以解碼為字符,只有以字符編碼組織的二進制信息才可以解碼為字符。當二進制信息不是以字符編碼組織的,或者使用錯誤的字符編碼進行解碼會拋出異常。 ```python >>> b'\xd6\xd0'.decode('utf-8') Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd6 in position 0: invalid continuation byte ``` 注意:為了解決字符串不一致的問題,python3中,所有的字符串在內存中都是以`unicode`來表示的,其它的編碼再通過`uniocde`進行轉換。 ```python >>> '中'.encode('unicode_escape') b'\\u4e2d' # unicode >>> b'\\u4e2d'.decode() >>> b'\\u4e2d'.decode('unicode_escape') '中' ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看