2015-09-07 33 views

Odpowiedz

100

System.Runtime.Extensions definiuje zarówno UrlDecode i .

namespace System.Net 
{ 
    public static partial class WebUtility 
    { 
     public static string HtmlDecode(string value) { return default(string); } 
     public static string HtmlEncode(string value) { return default(string); } 
     public static string UrlDecode(string encodedValue) { return default(string); } 
     public static byte[] UrlDecodeToBytes(byte[] encodedValue, int offset, int count) { return default(byte[]); } 
     public static string UrlEncode(string value) { return default(string); } 
     public static byte[] UrlEncodeToBytes(byte[] value, int offset, int count) { return default(byte[]); } 
    } 
} 

Aktualizacja
Podczas System.Runtime.Extensions określa rozszerzenie, jak można zauważyć, ze jest to kod rzeczywista klasa trzeba zadzwonić to System.Net.WebUtility

System.Net.WebUtility.HtmlEncode(myString) 
System.Net.WebUtility.HtmlDecode(myString) 

Obecnie nie ma żadnych publicznie wykonane plany obejmują Decode w Microsoft.Framework.WebEncoders.

+0

Wielkie dzięki za odpowiedź. Miałem inne problemy do rozwiązania, więc wczoraj dostałem się do testowania. – bezejmeny

+2

Dziękuję za odpowiedź. Działa, ale mam z tym mały problem. Próbuję zakodować jedną wartość i porównuję wynik z moją poprzednią aplikacją w .NET 4.5. Wynik jest nieco inny. W starym asp.net miałem zakodowaną wartość tego wyniku: ** kA5viZqq23% 2f4LCe4IboZ7Q% 3d% 3d ** iz nowym UrlEncode reuslt to: ** kA5viZqq23% 2F4LCe4IboZ7Q% 3D% 3D ** Różnica jest taka, że ​​kilka litery są kapitałem. Z tego powodu niektóre wartości, takie jak **% 3D **, są w mojej starej wersji znakiem równości, aw nowej wersji są zapisywane tylko tak, jak jest napisane **% 3D **. Czy masz jakiś pomysł na ten temat? – bezejmeny

+0

To interesujące. Zachęcam Cię do stworzenia problemu w GitHub. –