- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте. Ест сайт на utf-8, на котором пытаюсь реализовать кириллические ссылки. делаю:
<a href="/<? echo urlencode("страница"); ?>/">ссылка на страницу</a>На странице домен.рф/страница/ слово "страница", полученное из урла пропускаю через urldecode и на выходе получаю квадратики. Эксперементалным путем выяснил, что после декодирования слова из урла оно возвращается в windows-1251 и
<? echo iconv("windows-1251","utf-8",urldecode($str)); ?>где $str - "страница" из урла
дает то, что нужно. Да, проблема решена, но мне такое решение не очень нравится. Объясните, пожалуйста, необразованному, почему так получается и можно ли процедуру передачи кириллического слова в урл и обратно совершать в utf-8, без лишних перекодирований и вынужденного использования iconv?
Спасибо.
откуда приходит $str? похоже сайт совсем не "на utf-8"
$str приходит непосредственно из урл страницы. Конкретнее, так:
$RURI = $_SERVER['REQUEST_URI'];
$arruri=explode("/",$RURI);
$str=urldecode($arruri[1]);
На страницу это пробовал приходить как по ссылке с другой страницы, сформированной по принципу
echo '<a href="/'.urlencode("страница").'/">ссылка</a>';так и напрямую, написав домен.рф/страница/ в строке адреса в браузере. В обоих случаях $str=urldecode($arruri[1]); возвращает результат в windows-1251.
У меня тоже сначала появились сомнения по поводу кодировки сайта, но
<META http-equiv=Content-Type content="text/html; charset=utf-8">
присутствует, даже в .htacces прописал
Более того, если я не ошибаюсь, символы в windows-1251 в строке адреса всегда закодированы и не могут выглядеть как "/страница/", из чего делаю вывод, что адрес все же приходит в нужной кодировке.
php скрипт сохранен в кодировке UTF-8? Страница на сервере?
Пока что все на локальном, и да, все сохранено в utf-8.
UPD:
Нашел проблему. Как оказалось, в index.php остался кусок кода, перекодирующий все символы из utf-8 в windows-1251, если такие встречаются в адресе. Защита от прошлых проблем Яндекса.
Прошу прощения за собственную невнимательность.