博客專欄

        EEPW首頁 > 博客 > python中str、bytes、十六進制字符串的相互轉換方法

        python中str、bytes、十六進制字符串的相互轉換方法

        發布人:電子禪石 時間:2024-08-12 來源:工程師 發布文章

        在Python中,str(字符串)、bytes(字節序列)以及十六進制字符串

        (通常以字符串形式存在,但內容表示十六進制數)之間的轉換是非常常見的操作。

        這里將詳細說明它們之間的轉換方法。


        1. str 到 bytes 的轉換

        要將str(字符串)轉換為bytes(字節序列),可以使用str的.encode()方法。

        這個方法默認使用UTF-8編碼將字符串轉換成字節序列。


        s = "hello"  

        b = s.encode('utf-8')  # 使用UTF-8編碼  

        print(b)  # 輸出: b'hello'

        如果字符串包含非ASCII字符,確保使用正確的編碼以避免UnicodeEncodeError。


        2. bytes 到 str 的轉換

        將bytes(字節序列)轉換回str(字符串),可以使用bytes的.decode()方法。

        這個方法默認也使用UTF-8編碼。


        b = b'hello'  

        s = b.decode('utf-8')  

        print(s)  # 輸出: hello

        如果bytes數據不是用UTF-8編碼的,你需要指定正確的編碼來避免UnicodeDecodeError。


        3. str 表示的十六進制字符串到 bytes 的轉換

        如果有一個十六進制字符串(即,字符串中的字符是十六進制數,如"48656c6c6f"表示"hello"),可以使用bytes.fromhex()方法將其轉換為bytes。


        hex_str = "48656c6c6f"  

        b = bytes.fromhex(hex_str)  

        print(b)  # 輸出: b'hello'

        4. bytes 到 十六進制字符串(str)的轉換

        將bytes轉換為十六進制字符串,可以使用bytes的.hex()方法。


        b = b'hello'  

        hex_str = b.hex()  

        print(hex_str)  # 輸出: 48656c6c6f

        總結

        使用.encode()將str轉換為bytes。

        使用.decode()將bytes轉換為str。

        使用bytes.fromhex()將十六進制字符串(str)轉換為bytes。

        使用.hex()將bytes轉換為十六進制字符串(str)。

        注意:在進行編碼和解碼操作時,應確保使用正確的字符編碼(如UTF-8),

        以避免出現編碼錯誤。

        ————————————————


                                

        原文鏈接:https://blog.csdn.net/AOMGyz/article/details/140373240


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: python

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 鱼台县| 海阳市| 酉阳| 右玉县| 新和县| 宣恩县| 内丘县| 六安市| 遂平县| 原阳县| 资中县| 楚雄市| 永善县| 元朗区| 巴林右旗| 岢岚县| 建瓯市| 鄂伦春自治旗| 岱山县| 开化县| 绥芬河市| 乡宁县| 洛浦县| 陇西县| 盈江县| 南安市| 乌兰县| 内乡县| 新竹县| 建宁县| 六盘水市| 安义县| 海晏县| 铜山县| 揭西县| 蓬安县| 阿勒泰市| 邢台市| 孝义市| 高唐县| 金川县|