PowerShellスクリプトを使用して単純なHTMLを生成していますが、結果のHTMLで使用されている文字列をエスケープしたいと思います(HTML固有の記号を含めることができるため)。
例えば:
$a = "something <somthing else>";
次のように変換する必要があります。
"something <something else>"
そのための組み込み関数はありますか?
PowerShellスクリプトを使用して単純なHTMLを生成していますが、結果のHTMLで使用されている文字列をエスケープしたいと思います(HTML固有の記号を含めることができるため)。
例えば:
$a = "something <somthing else>";
次のように変換する必要があります。
"something <something else>"
そのための組み込み関数はありますか?
System.Webにこれを行うクラスがあります。
Add-Type -AssemblyName System.Web
[System.Web.HttpUtility]::HtmlEncode('something <somthing else>')
あなたも逆に行くことができます:
[System.Web.HttpUtility]::HtmlDecode('something <something else>')
PowerShell 3.0以降で[System.Net.WebUtility]
は、次の4つの一般的な操作のいずれかに使用します。
[System.Net.WebUtility]::HtmlEncode('something <somthing else>')
[System.Net.WebUtility]::HtmlDecode('something <somthing else>')
[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
ます。
$ SomeEmail = "user@domain.com"
$ EncodedString =([uri] :: EscapeDataString($ SomeEmail))
書き込みホスト$EncodedString