Из RFC 1738 - унифицированные указатели ресурсов (URL) :
только буквенно-цифровые символы, специальные символы $-_.+!*'(),
и зарезервированные символы, используемые для их зарезервированных целей, могут использоваться без кодировки в URL-адресе.
Символ ?
является зарезервированным символом. Поскольку указанный вами URL-адрес не использует его в зарезервированных целях (отделяя «путь» от «searchpart»), этот URL-адрес недопустим, и вам не следует полагаться на какое-либо конкретное поведение.
Кодируйте символ ?
и убедитесь, что URL-адрес допустим, если вы хотите предсказуемое поведение.