base64 - Base64 编码文件显示“GZIP”,但在 Python 中对其进行解码会输出损坏的 HTML
问题描述
我无法从旧备份(Windows 系统)的文件中读取数据。
示例内容的外观:
GZIP
-}_HTML>
<H AD>
<META HTTP-EQUV="Conten-Type" CO!TENT="tex/html; chrset=wind&ws-1252">
它几乎是正确的 HTML……但有些字符已损坏。
在 Base64 中,它看起来像这样:
R1pJUAwAAAAKAAAALX0AAF9IVE1MPg0KPEggQUQ+DQo8TUVUQSBIVFRQLUVRVQ5WPSJDb250ZW4ZLVR5cGUiIENPIVRFTlQ9InRleBwvaHRtbDsgY2gTcnNldD13aW5kJndzLTEyNTIi
由于顶部显示“GZIP”,因此我尝试在 Python 中使用 gzip 对其进行解压缩。
import zlib
import base64
s = "R1pJUAwAAAAKAAAALX0AAF9IVE1MPg0KPEggQUQ+DQo8TUVUQSBIVFRQLUVRVQ5WPSJDb250ZW4ZLVR5cGUiIENPIVRFTlQ9InRleBwvaHRtbDsgY2gTcnNldD13aW5kJndzLTEyNTIi"
s = base64.b64decode(s.encode('Latin1'))
zlib.decompress(s, 31)
虽然我收到了错误:
zlib.error:解压缩数据时出现错误-3:标头检查不正确
与此代码相同:
import gzip
s = gzip.decompress(s)
s = str(s,'utf-8')
print(s)
gzip.BadGzipFile:不是 gzip 压缩文件 (b'GZ')
知道如何从该文件中恢复数据吗?
解决方案
它既不是 gzip 也不是任何形式的压缩。尽管顶部有“GZIP”一词。这就是你所看到的。
推荐阅读
- parameters - “NoneType”对象不可用于装饰器函数
- wordpress - 如何为 JSON 对象内的数据编写 REST API 查询
- plotly - 如何在 JupyterLab 3+ 中显示 Plotly 数字?
- javascript - 未捕获的类型错误:获取计算机的本地 IP 地址时,无法在 javascript 代码中读取 null 的属性“1”
- mysql - 创建表,将某些列的类型定义为某个函数的返回类型
- python - 我正在实现“异或”功能,但它失败了
- java - 如何解决错误以及如何使用 oops 概念做得更好?
- javascript - 是否可以在 iFrame 中伪造国家/地区?
- html - CSS:“transform:translate”突然停止在chrome mobile中工作
- visual-studio - 运行时权限检查 Xamarin