2012-04-10 70 views

回答

32

有一个类将在System.Web中做到这一点。

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

你甚至可以走另外一条道路:

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

这就是我正在寻找的,谢谢! – Kel 2012-04-10 02:20:18

+0

另一种方法是使用'[System.Security.SecurityElement] :: Escape($ textToEscape)''。存在一些差异;请参阅:https://www.roelvanlisdonk.nl/2009/09/23/you-should-use-system-security-securityelement-escape-in​​-c-to-escape-special-characters-in-xml-and-没有系统的web-httputility-的HTMLEncode /。 – JohnLBevan 2017-04-10 14:22:53

1

使用PowerShell 3.0开始,使用[System.Net.WebUtility]任何常见的四种操作:

[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是常见的做法以前到.NET 4.0(PowerShell 2.0或更早版本),但需要加载System.Web.dll

Add-Type -AssemblyName System.Web 

与.NET 4.0(PowerShell的3.0)[System.Web.HttpUtility]::HtmlEnocde内部调用[System.Net.WebUtility]::HtmlEncode开始,因此它是有道理的离开了中间人(System.Web.dll)。

相关问题