sidan
@sidan
php-developer

Как раскодировать последовательность в урле?

Добрый день!
Проблема при получении данных из гет, последовательность символов %A[любой символ] воспринимается какой-то непонятный символ.
Воспроизвести можно простым примером:
<?php
$url = 's=%AD';
print_r(parse_query($url));

Результат joxi.ru/EA41GBjsDWBv1r .
При получении данных из гет происходит тоже самое.

Вот здесь https://stackoverflow.com/questions/1756862/url-de... описание проблемы и ее решение, но работает криво и для кириллицы не подходит.

Может есть какие варианты решения?

Спасибо.
  • Вопрос задан
  • 78 просмотров
Решения вопроса 1
sidan
@sidan Автор вопроса
php-developer
Проблема в том, что php когда парсит query_string, натыкаясь на %AD%, думает что на строку наложено urlencode и пытается ее раскодировать.

Моей задачей было про получить хоть какую-ту строку без ломанных символов(т.к. они ломали логику приложения), решилось преобразованием в utf8 с игнорированием неюникодных символов:
$value = iconv('UTF-8', 'UTF-8//IGNORE', $value);

Как решить более красиво, чтобы последовательность символов осталась, я пока не придумал.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
hOtRush
@hOtRush
Проблема скорее всего в кодировке.
%AD можно получить если в win-1251 закодировать символ мягкого переноса, а кракозябры получить если пытаться раскодировать в utf-8.

developer.roman.grinyov.name/blog/81
https://www.w3schools.com/tags/ref_urlencode.asp
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы