python把字符串转为二进制_Python 字符串与二进制转换

python 2.7

>>> "hello".encode('hex')

'68656c6c6f'

>>> import binascii

>>> binascii.hexlify('hello'.encode('utf8')) # 不加 encode 也行

'68656c6c6f'

>>> binascii.b2a_hex('hello') # 同样加不加 encode 都行,返回结果是 str 类型

'68656c6c6f'

>>> import codecs

>>> codecs.getencoder('hex_codec')(b'hello')[0] # hex_codec,hex 均可,以下有没有 b 均可

'68656c6c6f'

>>> codecs.getencoder('hex')(b'hello')[0]

'68656c6c6f'

>>> codecs.encode(b"hello", 'hex_codec') # 同样 hex_codec,hex 均可

'68656c6c6f'

python 3

>>> "hello".encode('hex') # 不可用

Traceback (most recent call last):

File "", line 1, in

"hello".encode('hex')

LookupError: 'hex' is not a text encoding; use codecs.encode() to handle arbitrary codecs

>>> s = "hello".encode("utf-8").hex()

>>> s

'68656c6c6f'

>>> bytes(s, "utf-8")

b'68656c6c6f'

>>> b'hello'.hex()

'68656c6c6f'

>>> import binascii

>>> binascii.hexlify('hello'.encode('utf8')) # 参数必须是 bytes 类型

b'68656c6c6f'

>>> binascii.b2a_hex('hello'.encode('utf8')) # 参数必须是 bytes 类型

b'68656c6c6f'

>>> import codecs

>>> codecs.getencoder('hex_codec')(b'hello')[0] # hex_codec,hex 均可,必须是 bytes 类型

b'68656c6c6f'

>>> codecs.getencoder('hex')(b'hello')[0]

b'68656c6c6f'

>>> codecs.encode(b"hello", 'hex_codec') # 同样 hex_codec,hex 均可

b'68656c6c6f'

16进制转字符串

python 2.7

>>> binascii.unhexlify('68656c6c6f')

'hello'

>>> binascii.unhexlify(b'68656c6c6f')

'hello'

>>> import codecs

>>> codecs.decode(b"68656c6c6f", 'hex') # hex_codec,hex 均可,有没有 b 均可

'hello'

python 3

>>> bytes.fromhex('68656c6c6f')

b'hello'

>>> binascii.unhexlify('68656c6c6f')

b'hello'

>>> binascii.unhexlify(b'68656c6c6f')

b'hello'

>>> import codecs

>>> codecs.decode(b"68656c6c6f", 'hex') # hex_codec,hex 均可,必须是 bytes 类型

'hello'

bytearray 和 string 之间转换>>> bytearray.fromhex("68656c6c6f")

bytearray(b'hello')

>>> bytearray(b'hello')

bytearray(b'hello')

>>> str(bytearray(b'hello')) # 2.7

'hello'

>>> str(bytearray(b'hello'), 'utf-8') # 3

'hello'

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 [email protected]

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值