UTF-8 以外の文字が含まれないように、dll によって返される構造体のフィールドの 1 つを修正しようとしています。フィールドを変更しようとすると、エラーが発生します
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'
>>>