Знак + является метасимволом в URL и преобразуется в пробел.
Это не совсем верно.
RFC 3986 стандартизирует URI и включает в приложение-A расширенную форму Бачуса-Наура описание синтаксиса URI. +
(U + 002B) является членом sub-delims
, что означает, что он является членом pchar
и, следовательно, является кандидатом для включения в query
.
Исторически более вероятно, что проблема, с которой вы сталкиваетесь, заключается в том, что некоторая часть стека предполагает, что ваш запрос равен application/x-www-form-urlencoded
, что является одним из вариантов отправки данных формы в HTML. Правила для этого типа включают в себя шаг сериализации , который заменяет пробел (U + 0020) на плюс (U + 002B) и плюс на его кодированную в процентах форму.
При извлечении данных из него десериализатор, естественно, заменит плюс в URL пробелом.
Но основной эскиз правильный - если ваши сериализаторы и десериализаторы не сбалансированы правильно, вас ждет плохой день .