Одна из причин, по которой это может происходить, заключается в том, что правила url для кодирования отличаются до и после ?
, поэтому, если механизм, выполняющий декодирование, делает это из «спины» правил декодирования запроса url и яблок пока он не найдет сначала ?
, это может вызвать проблему, которую вы описываете ...
Не уверен, как с этим справиться, хотя, как я понимаю, система, которая выполняет это неуместное декодирование, находится вне вашего контроля. Я бы попытался как-то скрыть ?
в обратном URL-запросе ...