Декодирование URL в PHP

Если бы Вы - профессиональный разработчик ASP.NET и имеете некоторое свободное время при изучении нового материала, я, конечно, рекомендовал бы провести некоторое время, испытав ASP.NET MVC. Это не может быть решение всех Ваших проблем, и существует много проектов, которые могут извлечь выгоду больше из традиционной реализации веб-формы, но при попытке выяснить MVC, Вы, конечно, изучите много, и это могло бы поднять много идей, что можно подать заявку на задание.

Одна хорошая вещь, которую я заметил при прохождении через многих сообщений в блоге и видео учебных руководств при попытке разработать любимый проект MVC, состоит в том, что большинство из них применяет текущие лучшие методы (TDD, МОК, Внедрение зависимости, и до более низкой степени ПОСТЕПЕННО), плюс много JQuery для создания опыта более интересным для пользователя, и это - материал, который я могу применить на свои текущие приложения веб-формы, и что я не был представлен в такой глубине прежде.

MVC ASP.NET способ сделать вещи так отличается от веб-форм, что это встряхнет немного Вашего ума, и который для разработчика очень хорош!

OTOH для общего новичка к веб-разработке я думаю, что MVC является определенно лучшим запуском, потому что это предлагает хороший шаблон разработки из поля и ближе к способу, которым сеть действительно работает (HTML является не сохраняющим состояние, в конце концов). На MVC Вы выбираете каждый байт, который идет назад и вперед на проводе (по крайней мере, в то время как Вы не сходите с ума на помощниках HTML). Как только парень получает это, он будет лучше снабжен для перемещения в "искусственные" услуги, предоставленные веб-формами ASP.NET и управлением сервером.

32
задан nalply 1 September 2012 в 18:40
поделиться

4 ответа

Ваша строка имеет кодировку и UTF-8. Это будет работать:

echo utf8_decode(urldecode("Ant%C3%B4nio+Carlos+Jobim"));

Вывод: «Антонио Карлос Жобим».

64
ответ дан 27 November 2019 в 20:12
поделиться

когда я делаю

<?php
echo urldecode("Ant%C3%B4nio+Carlos+Jobim");
?>

Он правильно отображается в моем браузере, например

Антонио Карлос Жобим

Я тестировал с XAMPP

3
ответ дан 27 November 2019 в 20:12
поделиться

Используете ли вы также htmlenteties перед отображением его на странице? Когда я только что протестировал ваш код, он отлично работал с частью urldecode («Ant% C3% B4nio + Carlos + Jobim»); , но когда я прогнал его через htmlentities , я получил тот же результат, что и вы.

Кажется, проблема связана с символами UTF-8 и тем, как PHP обрабатывает функцию htmlentities .

1
ответ дан 27 November 2019 в 20:12
поделиться

Фактически, вы получаете желаемый результат, но он не интерпретируется как UTF-8. Если это приложение HTTP, вы должны отправить заголовок или метатег (или оба), которые сообщают клиенту использовать UTF-8.

Изменить: например:

// replace text/html with the content type you're using
header('Content-Type: text/html; charset=UTF-8');
13
ответ дан 27 November 2019 в 20:12
поделиться
Другие вопросы по тегам:

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