0

我正在尝试解码从进程地址获得的字节数据。我知道使用 3rd 方软件字节地址的值是什么。我将字节数据检索到缓冲区(类型c_char_pfrom ctypes)中。

然后使用buffer.value.decode()I get (#back when I get the value 9000. 我将值(使用第三方软件)更改为 2000。一旦我这样做了,我得到了错误

UnicodeDecodeError: 'utf-8' can't decode byte 0xd0 in position 0: invalid continuation byte

在我看来,要么 UTF-8 是错误的编码,要么我做错了其他事情。我尝试将其解码为 Latin-1,但这也没有成功。有什么建议么?

4

1 回答 1

1

'\xd0\x07' 是 2000 的小端表示。

>>> import ctypes
>>> ptr = ctypes.c_char_p(b'\xd0\x07')
>>> val = ctypes.c_int()
>>> ctypes.memmove(ctypes.byref(val),ptr,ctypes.sizeof(val))
>>> val.value
2000
于 2013-10-30T20:58:25.880 回答