如何将字节对象放入字符串中? Python

How do I put bytes object in a string? Python

  1. 我有一条 RSA 加密消息(字节)
  2. 我想制作一个字符串:f'!e {encrypted_message}'
  3. 然后我需要对其进行编码以便通过套接字发送

我尝试解码我​​的消息以便将其放入字符串中,但我得到的是:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc4.

如何将消息(字节对象)放入字符串中?

如果您确实需要一个带有 !e 前缀的文本(为了本次讨论的 ASCII)字符串,将任何字节转换为文本的防弹方法是 Base64。

幸运的是,base64.b64encode() returns 字节,所以你可以使用字节串和 +.

import base64

my_bytes = b'asdf'
bytes_with_prefix_for_the_socket = b'!e ' + base64.b64encode(my_bytes)