2012-04-10 8 views

risposta

32

C'è una classe che lo farà in System.Web.

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

Si può anche andare nella direzione opposta:

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

Questo è quello che stavo cercando, grazie! – Kel

+0

Un'alternativa è usare '[System.Security.SecurityElement] :: Escape ($ textToEscape)'. Esistono alcune differenze; vedere: https://www.roelvanlisdonk.nl/2009/09/23/you-should-use-system-security-securityelement-escape-in-c-to-escape-special-characters-in-xml-and- non-system-web-httputility-HTMLEncode /. – JohnLBevan

1

A partire da PowerShell 3.0, utilizzare [System.Net.WebUtility] per una qualsiasi delle quattro operazioni più comuni:

[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 è l'approccio comune precedente a .NET 4.0 (PowerShell 2.0 o versioni precedenti), ma richiederebbe il caricamento di System.Web.dll:

Add-Type -AssemblyName System.Web 

A partire da .NET 4.0 (PowerShell 3.0) [System.Web.HttpUtility]::HtmlEnocde chiama internamente [System.Net.WebUtility]::HtmlEncode, quindi ha senso lasciare fuori l'uomo medio (System.Web.dll).

Problemi correlati