首页 > 后端开发 > Python教程 > 如何在 Python 中高效地在二进制和 ASCII 字符串之间进行转换?

如何在 Python 中高效地在二进制和 ASCII 字符串之间进行转换?

Mary-Kate Olsen
发布: 2024-11-26 06:06:09
原创
682 人浏览过

How Can I Efficiently Convert Between Binary and ASCII Strings in Python?

将二进制转换为 ASCII,反之亦然

Python 提供了各种方法将字符串编码为二进制表示,反之亦然。

字符串转二进制

提供的代码使用reduce 将字符串转换为二进制。然而,更简单的方法是使用 Python 2 中的 binascii 模块和 Python 3 中的 int.from_bytes:

import binascii

binary = bin(int(binascii.hexlify('hello'), 16)) # Python 2
binary = bin(int.from_bytes('hello'.encode(), 'big')) # Python 3+
登录后复制

二进制到字符串

要反转该过程,使用 Python 2 中的 binascii.unhexlify 和 Python 中的 int.to_bytes 方法3:

text = binascii.unhexlify('%x' % n) # Python 2
text = n.to_bytes((n.bit_length() + 7) // 8, 'big').decode() # Python 3+
登录后复制

UTF-8 支持

要支持 Python 3 中的所有 Unicode 字符,您可以创建自定义函数进行转换:

def text_to_bits(text, encoding='utf-8', errors='surrogatepass'):
    # Converts text to bits, supporting all Unicode characters
    ...

def text_from_bits(bits, encoding='utf-8', errors='surrogatepass'):
    # Converts bits back to text, supporting all Unicode characters
    ...
登录后复制

这个自定义函数同时兼容Python 2和Python 3。

综上所述,Python提供了二进制字符串转换的各种方法。上述解决方案提供了高效灵活的方法来处理此任务,包括对 Unicode 字符的支持。

以上是如何在 Python 中高效地在二进制和 ASCII 字符串之间进行转换?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板