0

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

0 に答える 0