将二进制字符串的文本转储转换为实字符串

2024-05-16 07:26:12 发布

您现在位置:Python中文网/ 问答频道 /正文

python库输出文本转储的二进制utf-8字符串,如下所示:

In [1]: string
Out[1]: "b'\\xd0\\x9f\\xd1\\x80\\xd0\\xb5\\xd0\\xb4\\xd0\\xb8\\xd1\\x81\\xd0\\xbb\\xd0\\xbe\\xd0\\xb2\\xd0\\xb8\\xd0\\xb5'"

In [2]: type(string)
Out[2]: str

我需要从这些字符串中恢复真正的字符串,就像它们是真正的二进制字符串一样:

In [91]: string_b
Out[91]: b'\xd0\x9f\xd1\x80\xd0\xb5\xd0\xb4\xd0\xb8\xd1\x81\xd0\xbb\xd0\xbe\xd0\xb2\xd0\xb8\xd0\xb5'

In [92]: type(string_b)
Out[92]: bytes

In [93]: string_b.decode('UTF-8')
Out[93]: 'Предисловие'

我该怎么做?你知道吗


Tags: 字符串instring二进制outx81x80xb8
2条回答

使用^{}读取字符串,就好像它在python代码中:

import ast
res = ast.literal_eval("b'\\xd0\\x9f\\xd1\\x80\\xd0\\xb5\\xd0\\xb4\\xd0\\xb8\\xd1\\x81\\xd0\\xbb\\xd0\\xbe\\xd0\\xb2\\xd0\\xb8\\xd0\\xb5'")
res
b'\xd0\x9f\xd1\x80\xd0\xb5\xd0\xb4\xd0\xb8\xd1\x81\xd0\xbb\xd0\xbe\xd0\xb2\xd0\xb8\xd0\xb5'
res.decode("UTF-8")
'Предисловие'

如果有一个包含二进制字符串repr的字符串,可以使用ast.literal_eval返回。你知道吗

相关问题 更多 >