我正在尝试修复由dll返回的结构中的一个字段,以使其不具有任何非UTF-8字符。当我尝试修改字段时,我遇到错误
import _portaudio as pa
...
my_dev_info = pa.get_device_info(device_index)
my_dev_info.name = my_dev_info.name.decode('utf-8','ignore')
my_dev_info.name = my_dev_info.name.decode('utf-8','ignore')
UnicodeDecodeError: 'utf8' codec can't decode byte 0xce in position 0: invalid c
ontinuation byte
如果我尝试简单地将.name重新分配给其他内容则会出现其他错误
my_dev_info.name = '???'
AttributeError: Fields read-only: cannot modify values
pa是从我相信的dll导入的。我无法控制其内容。有什么方法吗?
这适用于简单的字符串,但不适用于'pa'对象:
>>> s='┼δⁿτΦ foo'
>>> s = s.decode('utf-8','ignore')
>>> s
u' foo'
>>>