У меня возникла проблема с сохранением последовательности %2F в строке URI. Функция encodeURI кодирует % как %25, из-за чего вместо %2F получается %252F.
Важно отметить, что это происходит внутри фреймворка, поэтому манипуляции с JavaScript не подходят. Нужно решение на уровне экранирования строк.
Я пробовал использовать обратный слэш разными способами, но ничего не помогло. Есть ли какой-то способ сохранить % в исходном виде при кодировании URI?
А может попробовать заменить % на что-то другое до кодирования, а потом вернуть обратно? Типа % → PERCENT → кодирование → обратная замена. Или использовать регулярку, чтобы найти все %, за которыми идут две hex-цифры, и временно их заменить. Просто мысли вслух, может натолкнет на идею. А вообще странно, что фреймворк так себя ведет, может есть какая-то настройка для этого?
да, это реально головная боль с этими процентами! я в своем проекте столкнулся с похожей проблемой. в итоге пришлось написать свою функцию кодирования - просто проходился по строке и кодировал всё кроме % и цифр/букв после него. получилось не очень красиво, но работает. еще вариант - использовать какую-нибудь готовую библиотеку для работы с uri, там обычно есть разные полезные функции. главное не забыть потом все протестировать на разных кейсах, а то такие штуки любят преподносить сюрпризы