Python - 来自字节地址的UnicodeDecodeError?

时间:2013-10-30 20:13:00

标签: python unicode python-3.x byte decode

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

然后使用buffer.value.decode()当我希望获得值9000时,我得到(#。我将值(使用第三方软件)更改为2000.一旦我这样做,我收到错误< / p>

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

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

1 个答案:

答案 0 :(得分: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