JavaScript — $ _GET vs $ _SERVER [‘QUERY_STRING’] — проблема с кодированием

Я получаю доступ к своему скрипту

http://www.anydomain.com/code.php?a=ií

а также code.php в основном это

<?php header('Content-Type: text/html; charset=utf-8'); ?>
<html><head>
<meta charset="UTF-8">
</head><body>
<script>
console.log('<?php echo $_SERVER['QUERY_STRING'];?>');
console.log(unescape('<?php echo $_SERVER['QUERY_STRING'];?>'));
console.log('<?php echo $_GET['a'];?>');
</script>
</body></html>

журналы, которые я получаю:

а = я% C3% А.Д.

а = iÃ

Ii

В реальной жизни я ожидаю много параметров и нужно сохранить полный запрос, поэтому $ _SERVER [ ‘QUERY_STRING’] было бы очень удобно. Но кодировка, кажется, не работает должным образом, как это с $ _GET функция.

Есть ли способ получить запрос, используя $ _SERVER [ ‘QUERY_STRING’] но используя кодировку $ _GET?

-1

Решение

Проблема была не в PHP вообще, а в функции javascript unescape, Когда я изменился на decodeURIComponent это работало просто отлично.

1

Другие решения

$query = http_build_query($_GET);
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector