Я уже ответил на другой вопрос и не хочу перепечатывать.Дух ответа точно такой же.
Напишите модульный тест, использующий этот метод, из утилит Spring cloud.Это то, что ломается.Вы можете попытаться передать более или менее интересующую вас строку, чтобы узнать, где находится разрыв.Используйте бинарный поиск, чтобы выяснить, что сломано.Убедитесь, что вы не разбиваете строку в середине закодированного символа, иначе вы дадите себе ложный положительный результат.Когда он говорит, что у вас недопустимая последовательность, я ожидаю, что у вас есть что-то вроде% 99, где значение 99 не соответствует ни одному действительному символу (я просто создаю его)
https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/util/StringUtils.html#uriDecode-java.lang.String-java.nio.charset.Charset-
В сторону
Откуда эта кодированная строка?Кто-то в вашей компании создал собственное решение для кодирования этой строки?Вы принимаете данные пользователя?ОЧЕНЬ ВОЗМОЖНО, кто бы ни отвечал за создание этой строки, закодировавшей ее неправильно, путем homerolrol их собственного кодера.
АЛЬТЕРНАТИВНО
spring.cloud.gateway.routes[7].predicates[0]=Path=/test/{testId}/test1/test_%26%5E%26%25%5E%26%25%26*%25%2B)!
Когда я смотрю на это, я вижупуть, который уже закодирован .Например, вы взяли свой амперсанд и символ и заменили его на% 26
Вы пытались ввести путь, который НЕ уже закодирован?
Например spring.cloud.gateway.routes[7].predicates[0]=Path=/test/{testId}/test1/test_&^&%^
<Я только частичнорасшифровал это вручную, используя эту диаграмму.<a href="https://www.w3schools.com/tags/ref_urlencode.asp" rel="nofollow noreferrer">https://www.w3schools.com/tags/ref_urlencode.asp