2012-04-10 17 views

Respuesta

32

Hay una clase que hará esto en System.Web.

Add-Type -AssemblyName System.Web 
[System.Web.HttpUtility]::HtmlEncode('something <somthing else>') 

incluso se puede ir a la inversa:

[System.Web.HttpUtility]::HtmlDecode('something &lt;something else&gt;') 
+0

¡Eso es lo que estaba buscando, gracias! – Kel

+0

Una alternativa es usar '[System.Security.SecurityElement] :: Escape ($ textToEscape)'. Algunas diferencias existen ver: https://www.roelvanlisdonk.nl/2009/09/23/you-should-use-system-security-securityelement-escape-in-c-to-escape-special-characters-in-xml-and- not-system-web-httputility-htmlencode /. – JohnLBevan

1

A partir de PowerShell 3.0, utilice [System.Net.WebUtility] para cualquiera de las cuatro operaciones comunes:

[System.Net.WebUtility]::HtmlEncode('something <somthing else>') 
[System.Net.WebUtility]::HtmlDecode('something &lt;somthing else&gt;') 
[System.Net.WebUtility]::UrlEncode('something <somthing else>') 
[System.Net.WebUtility]::UrlDecode('something+%3Csomthing+else%3E') 

[System.Web.HttpUtility]::HtmlEncode es el enfoque común anterior a .NET 4.0 (PowerShell 2.0 o anterior), pero requeriría cargar System.Web.dll:

Add-Type -AssemblyName System.Web 

A partir de .NET 4.0 (PowerShell 3.0) [System.Web.HttpUtility]::HtmlEnocde llama internamente [System.Net.WebUtility]::HtmlEncode, por lo tanto, tiene sentido dejar al hombre medio (System.Web.dll).

Cuestiones relacionadas