Форум сайта python.su
Добрый день!
Недавно понадобилось экспортировать модель из Autodesk revit 2016 в Blender через FBX.
При экспорте возникла проблема с наименованиями. Ревит для всех стен, перекрытий, дверей и мебели использует русские наименования, соответственно при экспорте все тоже русское. Видимо, есть какая-то проблема с кодировками, потому что некоторые символы отображаются неправильно (см. вложение).
Меня это не волновало до тех пор, пока я не решил использовать скрипты на Python:
for ob in bpy.data.objects: print(ob.name)
Traceback (most recent call last): File "<blender_console>", line 2, in <module> UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in position 58: invalid continuation byte
Прикреплённый файлы: error1.png (2,9 KБ)
Офлайн
надо знать кодировку исходного текста. попробуй encode/decode
>>> s = 'строка' >>> s.encode('cp1251') b'\xf1\xf2\xf0\xee\xea\xe0' >>> s.encode('utf-8') b'\xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xba\xd0\xb0' >>> s.encode('cp866') b'\xe1\xe2\xe0\xae\xaa\xa0' >>> s.encode('cp1251').decode() Traceback (most recent call last): File "<pyshell#13>", line 1, in <module> s.encode('cp1251').decode() UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf1 in position 0: invalid continuation byte >>> s.encode('cp1251').decode('cp1251') 'строка' >>>
Офлайн
К сожалению, это не помогло: я даже не могу выполнить без ошибок команду
str = ob.name
Офлайн