python unquote. Как декодировать строку полностью?
Почему unquote не декодирует строку полностью ?
import urllib.parse
result_files = "%d0%be%d1%87%d0%b5%d0%bd%d1%8c%d0%b4%d0%bb%d0%b8%d0%bd%d0%bd%d0%be%d0%b5%d0%bd%d0%b0%d0%b7%d0%b2%d0%b"
p = urllib.parse.unquote(result_files,'utf-8')
print(p)
результат: оченьдлинноеназв�%b
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
код для поиска проблемы:
for i in range(3, len(result_files) + 1, 3):
text = result_files[:i]
p = urllib.parse.unquote(text, 'utf-8')
print(text)
print(p)
print()
смотрите, каждому символу отводится 2 символа вида %xx, в результате если вы посмотрите на строку, то увидите, что она не кратна 6 и заканчивается на
%d0%b
т.е. тут явный обрыв строки
должно заканчиваться на
%d0%b0
это буква 'a'
поэтому вы и видите в конце спецсимвол �%b
Но в любом случае, даже если исправить концовку, у вас записано лишь оченьдлинноеназва