В Python не полностью распознается URL если в нем есть русские символы

У меня есть строка, которую я передаю CURL

upload_oth = f'curl -k -u login:pass -T {filename} "https://cloud.dit.mos.ru/remote.php/dav/files/DIT-VKS-LdapUser/Other/тест"'

введите сюда описание изображения

Но если строка с русскими буквами, то она уже не распознается как полноценная ссылка И запрос падает с ошибкой Your browser sent an invalid request. введите сюда описание изображения

Как преобразовать сроку в полный URL и с русскими буквами


Ответы (1 шт):

Автор решения: Алексей С

Для корректной работы потребовалось кодировать URL. Использовал quote() функцию, предоставляемую urllib.parsepackage.quote()

from urllib.parse import unquote, quote

upload_oth = f'curl -k -u login:pass -T {quote(filename)} "https://cloud.dit.mos.ru/remote.php/dav/files/DIT-VKS-LdapUser/Other/{quote(filename)}

Вот эта статья помогла https://www.urlencoder.io/python/

→ Ссылка