Превращайте любой текст в URL-безопасную строку с процентным кодированием и обратно. Корректно работает с UTF-8 — кириллица переживает путь туда и обратно.
Всегда, когда значение попадает в URL: параметры запроса, сегменты пути, адреса редиректов. Пробелы, &, ?, # и кириллицу нужно кодировать.
%20 — универсальное кодирование пробела; + означает пробел только в форматах форм (query string). Сомневаетесь — используйте %20.
Скорее всего, строка закодирована дважды или это не UTF-8. Попробуйте декодировать ещё раз или проверьте исходную кодировку.
Нет — кодирование всего URL сломает его структуру (:// и /). Кодируйте отдельные значения параметров, а не весь адрес.