source

문자열(PowerShell)의 HTML 특정 문자를 벗어나는 가장 좋은 방법은 무엇입니까?

manysource 2023. 10. 2. 15:05

문자열(PowerShell)의 HTML 특정 문자를 벗어나는 가장 좋은 방법은 무엇입니까?

PowerShell 스크립트를 사용하여 간단한 HTML을 생성하고 있는데, 결과 HTML에 사용되는 문자열을 피하고 싶습니다(HTML 고유 기호가 포함될 수 있기 때문입니다).

예를 들어,

$a = "something <somthing else>";

다음으로 변환해야 합니다.

"something &lt;something else&gt;"

그것을 위한 내장 기능이 있습니까?

시스템에서 이를 수행할 클래스가 있습니다.웹.

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

다른 길로 갈 수도 있습니다.

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

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).

$일부 이메일 = "user@domain.com "

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

쓰기 호스트 $EncodedString

[uri] 인코딩을 사용하면 훨씬 쉬워집니다.

언급URL : https://stackoverflow.com/questions/10082217/what-is-the-best-way-to-escape-html-specific-characters-in-a-string-powershell