我有一个存储字节数据的字符串,一个例子是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。
答案 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')