37

PowerShellスクリプトを使用して単純なHTMLを生成していますが、結果のHTMLで使用されている文字列をエスケープしたいと思います(HTML固有の記号を含めることができるため)。

例えば:

$a = "something <somthing else>";

次のように変換する必要があります。

"something &lt;something else&gt;"

そのための組み込み関数はありますか?

4

3 に答える 3

56

System.Webにこれを行うクラスがあります。

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

あなたも逆に行くことができます:

[System.Web.HttpUtility]::HtmlDecode('something &lt;something else&gt;')
于 2012-04-10T02:15:10.450 に答える
19

PowerShell 3.0以降で[System.Net.WebUtility]は、次の4つの一般的な操作のいずれかに使用します。

[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ます。

于 2018-02-13T08:34:20.783 に答える
3

$ SomeEmail = "user@domain.com"

$ EncodedString =([uri] :: EscapeDataString($ SomeEmail))

書き込みホスト$EncodedString

[uri] ENCODINGを使用すると、非常に簡単になります

于 2020-07-17T00:43:49.203 に答える