Помогите решить вопрос с кодировкой

Всем привет. Помогите разобраться.
Необходимо считать с URL параметры
utm_source
utm_medium
utm_campaign
utm_term
utm_content
ссылка:< https://demo.ru?utm_source=test&utm_medium=cpc&utm_campaign=baza_lal%20test/promo&utm_term=auto_placements%20short&utm_content=6/1 >
когда человек переходит по ссылке в браузере ссылка меняется на такой вид ссылка:< https://demo.ru?utm_source=test&utm_medium=cpc&utm_campaign=baza_lal%20test%09%2Fpromo&utm_term=auto_placements%20short&utm_content=6%2F1 >
и я вместо того, чтобы записать значения
utm_source=test
utm_medium=cpc
utm_campaign=baza_lal test/promo
utm_term=auto_placements short
utm_content=6/1
получаю
utm_source=test
utm_medium=cpc
utm_campaign=baza_lal%20test%2Fpromo
utm_term=auto_placements%20short
utm_content=6%2F1
И конечно же самое весёлое начинается, если вдруг в параметрах будут русские наименования. Помогите решить вопрос с кодом, как его переделать, чтобы я смог получать параметры в правильной кодировке

 function getGet(name) {
        
               var s = window.location.search;
               s = s.match(new RegExp(name + '=([^&=]+)'));
               return s ? decodeURI(s[1]) : false;
            }
        
            $(function(){
              $("#field-input-489398").val(getGet("utm_source")); 
              $("#field-input-489399").val(getGet("utm_medium"));
              $("#field-input-513742").val(getGet("utm_campaign"));
              $("#field-input-513743").val(getGet("utm_term"));
              $("#field-input-513744").val(getGet("utm_content"));
            });


Ответы (1 шт):

Автор решения: Aziz Umarov

Думаю у вас проблема не с кодировкой а с кодированием строки

const uri = 'https://mozilla.org/?x=шеллы';
const encoded = encodeURI(uri);
console.log(encoded);
// expected output: "https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"

try {
  console.log(decodeURI(encoded));
  // expected output: "https://mozilla.org/?x=шеллы"
} catch (e) { // catches a malformed URI
  console.error(e);
}

Ещё вариант это кодировка компоненты строки

var set1 = ";,/?:@&=+$";  // Reserved Characters
var set2 = "-_.!~*'()";   // Unescaped Characters
var set3 = "#";           // Number Sign
var set4 = "ABC abc 123"; // Alphanumeric Characters + Space

console.log(encodeURI(set1)); // ;,/?:@&=+$
console.log(encodeURI(set2)); // -_.!~*'()
console.log(encodeURI(set3)); // #
console.log(encodeURI(set4)); // ABC%20abc%20123 (the space gets encoded as %20)

console.log(encodeURIComponent(set1)); // %3B%2C%2F%3F%3A%40%26%3D%2B%24
console.log(encodeURIComponent(set2)); // -_.!~*'()
console.log(encodeURIComponent(set3)); // %23
console.log(encodeURIComponent(set4)); // ABC%20abc%20123 (the space gets encoded as %20)

→ Ссылка