Если бы Вы - профессиональный разработчик ASP.NET и имеете некоторое свободное время при изучении нового материала, я, конечно, рекомендовал бы провести некоторое время, испытав ASP.NET MVC. Это не может быть решение всех Ваших проблем, и существует много проектов, которые могут извлечь выгоду больше из традиционной реализации веб-формы, но при попытке выяснить MVC, Вы, конечно, изучите много, и это могло бы поднять много идей, что можно подать заявку на задание.
Одна хорошая вещь, которую я заметил при прохождении через многих сообщений в блоге и видео учебных руководств при попытке разработать любимый проект MVC, состоит в том, что большинство из них применяет текущие лучшие методы (TDD, МОК, Внедрение зависимости, и до более низкой степени ПОСТЕПЕННО), плюс много JQuery для создания опыта более интересным для пользователя, и это - материал, который я могу применить на свои текущие приложения веб-формы, и что я не был представлен в такой глубине прежде.
MVC ASP.NET способ сделать вещи так отличается от веб-форм, что это встряхнет немного Вашего ума, и который для разработчика очень хорош!
OTOH для общего новичка к веб-разработке я думаю, что MVC является определенно лучшим запуском, потому что это предлагает хороший шаблон разработки из поля и ближе к способу, которым сеть действительно работает (HTML является не сохраняющим состояние, в конце концов). На MVC Вы выбираете каждый байт, который идет назад и вперед на проводе (по крайней мере, в то время как Вы не сходите с ума на помощниках HTML). Как только парень получает это, он будет лучше снабжен для перемещения в "искусственные" услуги, предоставленные веб-формами ASP.NET и управлением сервером.
Ваша строка имеет кодировку и UTF-8. Это будет работать:
echo utf8_decode(urldecode("Ant%C3%B4nio+Carlos+Jobim"));
Вывод: «Антонио Карлос Жобим».
когда я делаю
<?php
echo urldecode("Ant%C3%B4nio+Carlos+Jobim");
?>
Он правильно отображается в моем браузере, например
Антонио Карлос Жобим
Я тестировал с XAMPP
Используете ли вы также htmlenteties
перед отображением его на странице? Когда я только что протестировал ваш код, он отлично работал с частью urldecode («Ant% C3% B4nio + Carlos + Jobim»);
, но когда я прогнал его через htmlentities
, я получил тот же результат, что и вы.
Кажется, проблема связана с символами UTF-8 и тем, как PHP обрабатывает функцию htmlentities
.
Фактически, вы получаете желаемый результат, но он не интерпретируется как UTF-8. Если это приложение HTTP, вы должны отправить заголовок или метатег (или оба), которые сообщают клиенту использовать UTF-8.
Изменить: например:
// replace text/html with the content type you're using
header('Content-Type: text/html; charset=UTF-8');