C # MVC2 кодировать URL - PullRequest
       4

C # MVC2 кодировать URL

4 голосов
/ 08 октября 2010

Я пытаюсь закодировать URL с помощью приведенного ниже кода;

var encodedUrl = HttpUtility.UrlEncode("http://www.example.com");
var decodedUrl = HttpUtility.UrlDecode("http%3A%2F%2Fwww%2Eexample%2Ecom%2F");

Я работаю с API инструментов для веб-мастеров Google, и этот API ожидает URL, как показано в переменной decodedUrl выше.Здесь кодируется каждый отдельный символ.

Когда я использую функцию кодирования httputility, я получаю следующий результат:

http%3a%2f%2fwww.example.com

Как я могу использовать переменную кодирования таким образом, чтобы каждый символ вURL закодирован?

Ответы [ 2 ]

4 голосов
/ 08 октября 2010

Точка не является зарезервированным символом в URL, поэтому он не будет закодирован. См. этот вопрос и ответ для элегантного решения.

4 голосов
/ 08 октября 2010

Я почти уверен, что HtmlUtility и AntiXss (еще один инструмент MS для кодирования URL) здесь не помогут."."в URL-адресе считается допустимым и поэтому не нуждается в кодировке.

Я думаю, вам придется постобработать закодированную строку для дальнейшего кодирования других символов, которые недопустимы в Google WebmasterAPI инструментов.

т.е. сделать что-то вроде этого ...

var encodedUrl = HttpUtility.UrlEncode("http://www.example.com")
                            .Replace(".", "%2E");

... при условии, что "."единственный персонаж, с которым у вас проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...