2012-01-25 40 views

回答

2

Uri.EscapeUriString使用代替

here是MSDN文档

+0

现在我觉得很愚蠢。我一直在使用,并且持续了六年。 –

+0

另一个很好,只要它不silverlight ---没有system.web :) –

+0

而不是.NET客户端配置文件。 –

4

1)HttpUtility is supported上的Silverlight 3+。它在System.Windows.Browser中,但不在缺少的System.Web名称空间中。但是,WP7当前不支持它。

2)前面提到的Url编码的一个不受欢迎的选项是使用Uri.EscapeUriString。请注意,Uri.EscapeUriString对于某些特殊字符(如空格和“+”号)具有不同的结果,然后是HttpUtility.UrlEncode。所以它们在功能上并不相同。由于某些浏览器或Web服务器可能对这些更改敏感,所以我建议避免将Uri.EscapeUriString用于任何非知情用途(当您不拥有客户端< - >服务器对话的两端时)。

使用Uri.EscapeUriString也增加了意外使用Uri.UnescapeDataString的风险,它是所有暴行的母亲的。关于为什么是更多的细节和之间HttpUtility和URI辅助方法看到从ASP.Net队本2006年的文章的其他差异:Don't use .NET System.Uri.UnescapeDataString in URL Decoding

3)我建议的解决方案,我一直在使用成功的一个在我的WP7应用程序中是从Mono复制HttpUtility。这是基于2年前的Josh's suggestion,并且在编写顶级WP7应用程序方面表现良好。