Server.UrlEncode не работает для "*" ASP.net 3.5 - PullRequest
2 голосов
/ 11 августа 2010

Почему?

Server.UrlEncode("2*")

возврат 2*

, в то время как он должен вернуть 2%2A

, как проверено на thisдемонстрационный сайт

Ответы [ 2 ]

2 голосов
/ 11 августа 2010

RFC 1738 специально разрешает * в URL:

Таким образом, только буквенно-цифровые символы, специальные символы "$ -_. +! * '(),"и зарезервированные символы, используемые для их зарезервированных целей, могут использоваться без кодирования в URL.

Таким образом, нет необходимости кодировать его.

Страница, на которую вы ссылаетесь, является классическойСтраница asp использует UrlEncode, поэтому довольно старая реализация, а не .NET.

0 голосов
/ 11 августа 2010

Согласно .NET, * является «безопасным» символом и не нуждается в кодировании.

Правильно ли это или нет, я не знаю.

...