再次将存储在字符串中的字节数据转换为字节

时间:2018-10-29 20:25:38

标签: python

我有一个存储字节数据的字符串,一个例子是b'Hi \ x81y',而我有一个'Hi \ x81y'字符串。

因此,使用字符串,在utf-8中怎么办?我无法读取真实数据...,而且我找不到将字符串表达式转换回字节形式的方法。

我正在某种程度上尝试这样做:

data_str = 'Hi\x81y'
eval("b'{}'".format(data_str))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1
SyntaxError: bytes can only contain ASCII literal characters.

该示例无法正常运行并发送错误,即使手动编写代码也很麻烦。

我测试过的任何函数解码/编码/转换都失败了,因为python以字节为单位将字符串检测为utf-8。

2 个答案:

答案 0 :(得分:1)

不确定您的意思是什么,但是您可以尝试任何8位编码。

>>> 'Hi\x81y'.encode('latin_1')
b'Hi\x81y'

答案 1 :(得分:0)

要将字节转换为字符串,请使用decode方法:

mystring = mybytes.decode('utf-8')

要将字符串转换回字节,请使用encode方法:

mybytes = mystring.encode('utf-8')