Найти - Пользователи
Полная версия: Проблема при работе с кодировками в Blender
Начало » Python для новичков » Проблема при работе с кодировками в Blender
1
SharpCoder
Добрый день!

Недавно понадобилось экспортировать модель из 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

Может быть, кто-нибудь с этим уже сталкивался?
Можно ли написать скрипт, который позволит удалить эти символы?
vic57
надо знать кодировку исходного текста. попробуй 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')
'строка'
>>> 
SharpCoder
К сожалению, это не помогло: я даже не могу выполнить без ошибок команду
 str = ob.name
сразу возникает исключение…

Видимо, это какие-то особенности Blender
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB