Почему?Server.UrlEncode не работает для «*» ASP.net 3.5
Server.UrlEncode("2*")
возвращение 2*
в то время как он должен вернуть 2%2A
протестировано на this demo site
Почему?Server.UrlEncode не работает для «*» ASP.net 3.5
Server.UrlEncode("2*")
возвращение 2*
в то время как он должен вернуть 2%2A
протестировано на this demo site
Согласно .NET, *
является 'безопасный' характер и требует, чтобы не быть закодирован.
Является ли это на самом деле правильным или нет, я не знаю.
RFC 1738 специально позволяет *
в URL: "$ -_ + * '(),"
Таким образом, только буквенно-цифровые, специальные символы и зарезервированные символы используются для их зарезервированных целей может использовать , не назначенный в URL.
Таким образом, нет необходимости кодировать его.
Страница, на которую вы ссылаетесь, является классической страницей asp, поэтому используется UrlEncode
, поэтому довольно старая реализация, а не .NET.
, если это безопасно, тогда, когда я его просматриваю ... works Fine localhost: 2008/PinchofblissWeb/search/name = 2, но он не просматривает localhost: 2008/PinchofblissWeb/search/name = 2 * –
@SOF User - я пробовал переходить в '2 *' как обычный параметр ('? name = 2 *') без проблем. Вероятно, вы попали в механизм переадресации. – Oded
если это безопасно тогда, когда я просматриваю его ... работает Fine HTTP: // локальный: 2008/PinchofblissWeb/поиск/имя = 2 но не просматривать HTTP: // локальный: 2008/PinchofblissWeb/search/name = 2 * –