Почему конкатенация строк вызывает повторное кодирование?
Нужно переменную city декодировать через decodeURIComponent.city = $('select[name=city]').val();
url = '/rent/s/';
url += '?city=' + decodeURIComponent(city) + "&sort=date";
document.location.href = url;
Браузеры все по разному работают с кириллицей в ссылках.
Как хотят так и показывают.
Это не от кода зависит.
Да и зачем?