$ _SERVER не печатает значения unicode, поскольку это

http://localhost/fw/api/fw_api.php?rule=unicode&action=create&phrase=යුනිකෝඩ්

Я обращаюсь к указанному выше URL-адресу. В fw_api.php , когда я повторяю $_SERVER['QUERY_STRING'] он не дает фактического значения моего значения в формате Юникода «යුනිකෝඩ්», как в URL-адресе. Есть ли какое-либо исправление для этого или я делаю / ожидаю чего-то не так? Нужна помощь.

 header ('Content-type: text/html; charset=utf-8'); echo $_GET['phrase']; echo $_SERVER['QUERY_STRING']; die; 

Фактический результат:

යුනිකෝඩ්

Правило = юникода и действие = создать и выражение =% E0% B6% BA% E0% B7% 94% E0% B6% B1% E0% B7% 92% E0% B6% 9A% E0% B7% 9D% E0% B6% A9% E0 % B7% 8A

Что я ожидал

යුනිකෝඩ්

Правило = юникода и действие = создать и фраза = යුනිකෝඩ්

Solutions Collecting From Web of "$ _SERVER не печатает значения unicode, поскольку это"

Фактическое значение фактически «% E0% B6% BA% E0% B7% 94% E0 …»!

URL-адреса должны состоять из подмножества ASCII, они не могут содержать другие символы «Unicode». Ваш браузер может быть настолько приятным, что позволяет вводить произвольные символы Юникода и фактически отображать их как символы, но за кулисами значение URL-адреса кодируется в процентах . Вам придется декодировать его с помощью rawurldecode .

Строка запроса автоматически анализируется и декодируется PHP и помещается в массив $_GET$_POST для тела запроса). Но необработанную строку запроса вам придется разобрать и расшифровать.