在Python中解码后,恢复包含无效字符(UTF8)的字节字符串

2024-09-26 22:43:16 发布

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

我记录了很多从字节字符串解码为unicode(UTF-8)的文本

例如:

我从上游收到了大量字节字符串,如:

b_st = b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x00\x00\x01\x00\x01\x00\x00\xff\xfe\x00'

我在解码后把它们保存在我的电脑里

b_un = b_st.decode("utf-8", "replace")

正如您所看到的,初始字节字符串具有无效的 要解码为UTF-8的字符(例如\xff),以便替换这些字符

在那之后,我尝试从unicode文本中恢复字节字符串,但它将另一个字节字符串返回给我,与原始字符串不一样。

是否可以恢复原始字节字符串

顺便说一句,我并没有故意解码这些文本,我并没有阅读一个类的默认行为,该类会在必要时自动将任何文本转换为unicode


Tags: 字符串文本字节记录unicode解码字符utf
1条回答
网友
1楼 · 发布于 2024-09-26 22:43:16

replace是一个有损的codec error handler,用\ufffd(unicode替换字符)替换任何不可解码的字节

因此,无法恢复原始图像

如果您收到一个字节字符串,您可以使用二进制io对象将其写入文件:

with open(filename, 'wb') as f:
    f.write(byte_string)

相关问题 更多 >

    热门问题