【发布时间】:2015-09-02 21:02:15
【问题描述】:
我正在处理一个使用 python SWIG 模块的项目。该模块有一个功能:
void func(char* pin, unsigned long len);
并像这样从 python 调用:
key = "\x42\x1d\xd7"
modul.func(key)
奇怪的是传入数组的大小是4而不是3。最后一个字符(d7)被转换成两个字符(c3 97)。我注意到如果该字节设置了最高位,那么它会扩展为两个字节。我想这与字符串编码等有关。
还有另一种将“\x42\x1d\xd7”传递给 SWIG 模块函数的方法吗?
换句话说:我需要一种在 python 中创建字符串的方法,这有点畸形。它只需要 3 个字节 [0x42, 0x1d, 0xd7]
【问题讨论】: