【发布时间】:2013-10-30 20:13:00
【问题描述】:
我正在尝试解码从进程地址获得的字节数据。我知道使用 3rd 方软件字节地址的值是什么。我将字节数据检索到缓冲区(ctypes 中的 c_char_p 类型)。
然后使用buffer.value.decode() 我得到(#,而我希望得到值9000。我将值(使用第三方软件)更改为2000。一旦我这样做了,我得到了错误
UnicodeDecodeError: 'utf-8' can't decode byte 0xd0 in position 0: invalid continuation byte
在我看来,要么 UTF-8 是错误的编码,要么我做错了其他事情。我尝试将其解码为 Latin-1,但这也没有成功。有什么建议吗?
【问题讨论】:
-
嗯,能把字节地址的值贴出来吗?
-
尝试解码为 ctypes.c_int 或 ctypes.c_long?
-
@ChristianTernus:我在地址看到的值是
(#,当它是 9000(根据第三方软件的十进制格式)和 `\xd0\x07' 假设它是2000. -
@MarkkuK.:我会尽快尝试...
-
@MarkkuK.:嗯...快速浏览一下我不确定如何将其解码为 ctypes.c_int 或 ctypes.c_long。对此有何建议?
标签: python unicode python-3.x byte decode