2010-04-04 36 views
34

常規.Net框架包含System.Web程序集中的HttpUtility.UrlEncode,並且在Silverlight中它看起來被移到了System.Windows.Browser。但在Windows Phone 7中(我認爲它與Silverlight一樣),我似乎無法找到正確的方式來UrlEncode任何東西。在Windows Phone 7環境中,前面提到的程序集都不可用。Windows Phone 7中的HttpUtility.UrlEncode?

回答

58

Silverlight的Uri.EscapeUriStringUri.EscapeDataString可用於對URI的部分(如查詢字符串和路徑組件等)進行URL編碼。

即使在桌面框架中,您也不應該僅僅依賴於System.Web.dll來處理HttpUtility,儘管許多開發人員仍然這樣做。這有三個原因是不好的。

  • 該程序集非常大並且加載它會給您的應用程序增加顯着的延遲。
  • 您將爲您的流程的工作集放大約20行代碼。
  • 它使您的應用程序需要完整的框架,因爲System.Web不在客戶端配置文件中。

除了如上所述,如果你需要的HTMLEncode,我只是撕裂代碼關閉that someone else wrote並在您的應用程序拖放到URI轉義的方法。

+4

+1,也是任何.NET客戶端應用程序中的正確方法,而不僅僅是Silverlgiht。 HttpUtility位於System.Web.dll中,旨在傳遞Web的服務器端。 – AnthonyWJones 2010-04-04 12:26:59

+0

的確,我只是寫了一個twitter視圖/搜索應用程序,它使用它,所以他們的工作。 – RoguePlanetoid 2010-04-07 12:05:02

+0

關於HtmlEncode/HtmlDecode,它不僅在完整.NET框架的System.Web中:.NET 4客戶端配置文件具有System.Net.WebUtility,Silverlight具有System.Windows.Browser.HttpUtility,Windows Phone具有System.Net.HttpUtility – 2014-03-20 22:31:30

25

HttpUtility.UrlEncodeHttpUtility.UrlDecode在Windows Phone 7中,他們剛剛移動。

在程序集System.Windows.dll中的System.Net.HttpUtility中查找它們。

+1

它現在System.Net.WebUtility.UrlEncode – waza123 2016-03-08 01:25:20

0

現在解決了。您可以使用:

Windows.Data.Html.HtmlUtilities.ConvertToText("your_html_string");