Fix T64833: FBX Import fails with long names.
Classical stupid issues when trying to shorten an utf8 string to match a given bytes length... ;)
This commit is contained in:
parent
8a13d1ed8d
commit
8cbad90201
Notes:
blender-bot
2023-02-14 19:15:28 +01:00
Referenced by issue #64833, FBX Import fails with long names
|
@ -21,7 +21,7 @@
|
|||
bl_info = {
|
||||
"name": "FBX format",
|
||||
"author": "Campbell Barton, Bastien Montagne, Jens Restemeier",
|
||||
"version": (4, 14, 11),
|
||||
"version": (4, 14, 12),
|
||||
"blender": (2, 80, 0),
|
||||
"location": "File > Import-Export",
|
||||
"description": "FBX IO meshes, UV's, vertex colors, materials, textures, cameras, lamps and actions",
|
||||
|
|
|
@ -70,7 +70,12 @@ def validate_blend_names(name):
|
|||
if len(name) > 63:
|
||||
import hashlib
|
||||
h = hashlib.sha1(name).hexdigest()
|
||||
return name[:55].decode('utf-8', 'replace') + "_" + h[:7]
|
||||
n = 55
|
||||
name_utf8 = name[:n].decode('utf-8', 'replace') + "_" + h[:7]
|
||||
while len(name_utf8.encode()) > 63:
|
||||
n -= 1
|
||||
name_utf8 = name[:n].decode('utf-8', 'replace') + "_" + h[:7]
|
||||
return name_utf8
|
||||
else:
|
||||
# We use 'replace' even though FBX 'specs' say it should always be utf8, see T53841.
|
||||
return name.decode('utf-8', 'replace')
|
||||
|
|
Loading…
Reference in New Issue