【发布时间】:2012-01-25 00:55:58
【问题描述】:
UrlEncode 的 Silverlight 版本在哪里?我似乎找不到 HttpUtility 或类似的东西。
【问题讨论】:
标签: silverlight
UrlEncode 的 Silverlight 版本在哪里?我似乎找不到 HttpUtility 或类似的东西。
【问题讨论】:
标签: silverlight
1) Silverlight 3+ 上的 HttpUtility is supported。它虽然在 System.Windows.Browser 中,但不在缺少的 System.Web 命名空间中。但是目前 WP7 不支持它。
2) 前面提到的 URL 编码的一个不受欢迎的选项是使用 Uri.EscapeUriString。请注意,对于某些特殊字符(例如空格和“+”号),Uri.EscapeUriString 的结果与 HttpUtility.UrlEncode 不同。所以它们在功能上并不等同。由于某些浏览器或网络服务器可能对这些更改很敏感,因此我温和地建议避免将 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 应用程序方面为我提供了很好的帮助。
【讨论】:
改用Uri.EscapeUriString
here 是 MSDN 文档
【讨论】: