C#mvc2编码url

C#mvc2编码url,c#,asp.net,asp.net-mvc,encoding,C#,Asp.net,Asp.net Mvc,Encoding,我试图用下面的代码编码一个url var encodedUrl = HttpUtility.UrlEncode("http://www.example.com"); var decodedUrl = HttpUtility.UrlDecode("http%3A%2F%2Fwww%2Eexample%2Ecom%2F"); 我正在使用GoogleWebmasterToolsAPI,这个api需要一个URL,如上面的decodedUrl变量所示。每个字符都在那里编码 当我使用httputility

我试图用下面的代码编码一个url

var encodedUrl = HttpUtility.UrlEncode("http://www.example.com");
var decodedUrl = HttpUtility.UrlDecode("http%3A%2F%2Fwww%2Eexample%2Ecom%2F");
我正在使用GoogleWebmasterToolsAPI,这个api需要一个URL,如上面的decodedUrl变量所示。每个字符都在那里编码

当我使用httputility encode函数时,我得到以下结果

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

我如何使用编码变量来对url中的每个字符进行编码?

我很确定Htmluticity和AntiXss(另一种用于编码url的MS工具)在这里不会有帮助。url中的“.”被认为是有效的,因此不需要进行编码

我认为您必须对编码的字符串进行后期处理,以进一步编码其他在google webmaster tools API中无效的字符

i、 像这样做

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

。。。假设“.”是您遇到问题的唯一字符。

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

编写了一个扩展方法来替换字符,它的工作方式很有魅力。谢谢酷。扩展方法肯定会很好地整理代码。完全同意!它明确地清理了代码,并且易于维护。我们这里经常用它。许多项目都有一个工具箱,其中包含帮助程序和扩展方法,可以使用总体+1来获得良好的评价,我将在最终部署时记住这一点