[摘要]: 从文件中获取的数据是
b"\x95\xc3\x8a\xb0\x8ds\x86\x89\x94\x82\x8a\xba"
请问如何把这些字节解码成可读的汉字
=========
我从exe文件中提取了一些游戏脚本。这个文件是用Enigma虚拟盒打包的,我把它解包了
然后我就能看到剧本的名字了,就像它应该的那样,是英文的
在分析这些脚本时,我发现一个错误,如下所示:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x95 in position 0: invalid start byte
我将解码更改为GBK,错误消失了
但输出文件不可读。它包括可读的英文字符和不可读的中文内容。例如:
chT0002>pDIӘIʆ
我尝试了不同的编码来保存文件,结果都是一样的,所以问题可能出在解码部分
从文件中获取的数据是
b"\x95\xc3\x8a\xb0\x8ds\x86\x89\x94\x82\x8a\xba"
我尝试了很多方法,但我就是无法将这些字节解码成可读的汉字。文件本身有什么问题吗?还是别的地方?我真的需要帮助
其中一个脚本被附加到here
为了可靠地解码字节,您必须知道字节是如何编码的。我将借用python^{} 文档中的引用:
如果没有这些信息,就有办法尝试和检测编码(^{} 似乎是使用最广泛的)。下面是你如何做到这一点的
但是,上面的示例在这种情况下不起作用,因为
chardet
无法检测这些字节的编码。在这一点上,您将不得不使用试用和出错或尝试其他库您可以使用的一种方法是简单地尝试每个standard encoding,打印出结果,然后看看哪种编码有意义
输出
编辑:通过Google Translate运行所有看似清晰的结果后,我怀疑这种编码是UTF-16 big-endian。结果如下:
相关问题 更多 >
编程相关推荐