HttpContext.Current.Server.UrlEncode
Solo funciona en .NET Framework. ¿Cómo puedo codificar o decodificar argumentos uri en el proyecto ASP.NET Core?
c#
asp.net-core
asp.net-core-mvc
wtf512
fuente
fuente
HttpContext.Current
peroHttpContext
es parte de .Net Core -Microsoft.AspNetCore.Http.HttpContext
. Recuerda estoRespuestas:
Para ASP.NET Core 2.0+ simplemente agregue el
System.Net
espacio de nombres: laWebUtility
clase se envía como parte delSystem.Runtime.Extensions
paquete nuget, al que se hace referencia de manera predeterminada en el proyecto ASP.NET Core.Para la versión anterior, agregue el
Microsoft.AspNetCore.WebUtilities
paquete nuget.Entonces la
WebUtility
clase estará disponible para ti:fuente
Está disponible en la versión 2.0.0 de .Net Core SDK , en
System.Net.WebUtility.UrlEncode
( ver documentación )fuente
System.Net.WebUtility.UrlEncode
: los espacios están codificados con un+
. SolíaUri.EscapeDataString
codificar con%20
.Para ASP.Net Core 2.0+ y si necesita que los espacios se codifiquen como
%20
en contraposición a
+
;Utilizar:
fuente
No pierda su tiempo, tengo mucha experiencia con estos llamados codificadores de URL, todos son inútiles y tienen diferentes peculiaridades. Por ejemplo, WebUtility.UrlEncode no se ocupa del signo "+".
Si desea codificar parámetros de URL, utilice una codificación BASE58. Utiliza solo letras del alfabeto + números, por lo que no es necesario codificar la URL.
fuente
WebUtility.UrlEncode
y convirtió maravillosamente un signo más ("+") en un "% 2B". Estoy usando .NET Core 3.1.Estoy usando una redirección y UrlEncode no me funcionó porque codifica toda la URL. Resolví esto usando en su lugar UriHelper.Encode, que se muestra a continuación.
UriHelper.Encode
fuente