Python-UnicodeCodeError来自字节地址?

Python-UnicodeCodeError来自字节地址?,python,unicode,python-3.x,byte,decode,Python,Unicode,Python 3.x,Byte,Decode,我试图解码从进程地址获取的字节数据。我知道使用第三方软件时字节地址的值是多少。我将字节数据检索到一个缓冲区中(类型为c\u char\pfromctypes) 然后使用buffer.value.decode()我得到了(#当我期望得到值9000时返回。我将值(使用第三方软件)更改为2000。一旦这样做,我就得到了错误 UnicodeDecodeError: 'utf-8' can't decode byte 0xd0 in position 0: invalid continuation byt

我试图解码从进程地址获取的字节数据。我知道使用第三方软件时字节地址的值是多少。我将字节数据检索到一个缓冲区中(类型为
c\u char\p
from
ctypes

然后使用
buffer.value.decode()
我得到了
(#
当我期望得到值9000时返回。我将值(使用第三方软件)更改为2000。一旦这样做,我就得到了错误

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

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

“\xd0\x07”是2000的小endian表示法

>>> 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

嗯,你能公布字节地址的值吗?试着解码为ctypes.c#int或ctypes.c#long?@ChristianTernus:我在地址上看到的值是
(#
,当它是9000时(根据第三方软件以十进制格式)还有“\xd0\x07”,假设它是2000。@MarkkuK:我会很快尝试一下…@MarkkuK:嗯…快速查看一下,我不知道如何将它解码为ctypes.c_int或ctypes.c_long。有什么建议吗?太棒了。我的主代码中还有一些错误,但这确实返回了正确的值,所以我应该能够修复我的错误(哦,但是作为一个提示,你需要在
c\u char\u p()
中的字符串前面放一个
b
)啊,我仍然在想python 2.7——这没有什么区别。不过我会更新答案。啊,好的,是的,我正在使用3.3。另外,我还解决了我的另一个问题(在ReadProcessMemory之前有了memmove),所以现在一切都很好。再次感谢!