C#mvc2编码网址

时间:2010-10-08 13:19:18

标签: c# asp.net asp.net-mvc encoding

我正在尝试使用以下代码对网址进行编码;

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

我正在使用谷歌网站管理员工具api,这个api需要一个URL,如上面的decodingUrl变量所示。每个字符都在那里编码。

当我使用httputility编码功能时,我得到以下结果;

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

如何使用编码变量,以便对网址中的每个字符进行编码?

2 个答案:

答案 0 :(得分:4)

我很确定HtmlUtility和AntiXss(用于编码网址的另一个MS工具)在这里不会有用。一个 ”。”在URL中被认为是有效的,因此不需要编码。

我认为您将不得不对您编码的字符串进行后期处理,以进一步编码在Google网站管理员工具API中无效的其他字符。

即。做这样的事......

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

...假设“。”是你遇到问题的唯一角色。

答案 1 :(得分:4)

句点不是URL中的保留字符,因此不会对其进行编码。有关优雅的解决方案,请参阅this question and answer