Задать вопрос
YOin
@YOin
Data Analyst

Как декодировать строку?

Есть строка:

some_string = 'https://www.lagerbet.com/1xbet%25EC%259B%2590%25EC%2597%2591%25EC%258A%25A4%25EB%25B2%25B3-%25EB%25A8%25B9%25ED%258A%2580'

я четко выкупаю, что

%25EC%259B%2590%25EC%2597%2591%25EC%258A%25A4%25EB%25B2%25B3-%25EB%25A8%25B9%25ED%258A%2580

это utf-8 строка, вот только %25 - это \x.

re.sub(item1, item2, string) - такое не работает, вываливается ошибка re.error: bad escape \x at position 0.
Похожая ошибка с string.replace().
  • Вопрос задан
  • 119 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
@o5a
Похоже на двойное кодирование.
from urllib.parse import unquote

url = "%25EC%259B%2590%25EC%2597%2591%25EC%258A%25A4%25EB%25B2%25B3-%25EB%25A8%25B9%25ED%258A%2580"
print(unquote(unquote(url)))
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
Тут возможно encoding был применен несколько раз. Декодирование превращается в забавную игру. Но чтобы играть в нее нужно много времени.

Скажи там после 1xbet какая следующая русская буква должна быть по смыслу?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Greenway Global Новосибирск
от 150 000 ₽
SPA2099 Москва
До 100 000 ₽
HR Prime Москва
от 300 000 до 3 800 000 ₽