improve windows lookalike characters

This commit is contained in:
Zezombye 2024-12-06 12:54:27 +01:00 committed by GitHub
parent fca3eb5f8b
commit 3724350fb0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -637,8 +637,18 @@ def sanitize_filename(s, restricted=False, is_id=NO_DEFAULT):
elif not restricted and char == '\n':
return '\0 '
elif is_id is NO_DEFAULT and not restricted and char in '"*:<>?|/\\':
# Replace with their full-width unicode counterparts
return {'/': '\u29F8', '\\': '\u29f9'}.get(char, chr(ord(char) + 0xfee0))
# Replace with lookalike characters
return {
'"': '\u2033',
'*': '\uA60E',
':': '\u0589',
'<': '\u227A',
'>': '\u227B',
'?': '\uFF1F',
'|': '\u01C0',
'/': '\u29F8',
'\\': '\u29f9',
}[char]
elif char == '?' or ord(char) < 32 or ord(char) == 127:
return ''
elif char == '"':