У себя на сайте сделал лог в который пушутся данные с каторыми заходят ко мне на сайт пользователи, а конкретно пишется ip, браузер и URL предыдущей страницы, так вот возникла проблема с декодированием URL как например Код (Text): http://www.yandex.ru/yandsearch?text=%D0%BA%D1%83%D0%BA%D1%83&clid=9582 переделать в Код (Text): http://www.yandex.ru/yandsearch?text=куку&clid=9582 я пробывал использовать функции urldecode и rawurldecode но у меня получались кракозябры Код (Text): http://www.yandex.ru/yandsearch?text=РєСѓРєСѓ&clid=9582 Как этого избежать и правильно раскодировать URL?
При выводе устанавливаем: HTML: <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> Вообще желательно во всех проектах использовать UTF-8, избавите себя от проблем с кодировками навсегда.
не получается PHP: <? print " <html> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"> <title>Untitled 3</title> </head> <body>"; print rawurldecode("http://www.yandex.ru/yandsearch?text=%D0%BA%D1%83%D0%BA%D1%83&clid=9582"); print urldecode("http://www.yandex.ru/yandsearch?text=%D0%BA%D1%83%D0%BA%D1%83&clid=9582"); print "</body> </html>"; ?> На выходе имеем HTML: [url=http://www.yandex.ru/yandsearch?text=]http://www.yandex.ru/yandsearch?text=[/url]РєСѓРєСѓ&clid=9582 [url=http://www.yandex.ru/yandsearch?text=]http://www.yandex.ru/yandsearch?text=[/url]РєСѓРєСѓ&clid=9582 гдето ошибка?
Да, если изначально данные у вас в другой кодировке, то нужен iconv =) У меня все в UTF-8, поэтому преобразуется сразу.
Со страницы: site.ru/222.php?utm_med_русский текст перехожу на страницу site.ru/111.php в файле 111.php использую такой код для вывода ссылки с которой был переход: <?php $referer = getenv("HTTP_REFERER"); echo $referer; ?> Но ссылка выводится на экран в таком виде: site.ru/222.php?utm_med_%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%20%D1%82%D0%B5%D0%BA%D1%81%D1%82 скажите пожалуйста что нужно написать в файле 111.php чтобы кириллица отображалась нормально. Т.е. так: site.ru/222.php?utm_med_русский текст этот вариант: PHP: $text = iconv("UTF-8","windows-1251", $text2); Что-то не сработал. А может я как-то не правильно его применил.
Сделал так: <?php $referer = getenv("HTTP_REFERER"); echo urlencode($referer); ?> Но это не помогло. Нужно как-то по-другому?