2012-04-10 11 views
17

मैं पावरशेल स्क्रिप्ट के साथ कुछ सरल HTML उत्पन्न कर रहा हूं, और मैं परिणाम HTML में उपयोग किए गए तारों से बचना चाहता हूं (क्योंकि उनमें कुछ HTML-विशिष्ट प्रतीकों को शामिल किया जा सकता है)।एक स्ट्रिंग (PowerShell) में HTML- विशिष्ट वर्णों से बचने का सबसे अच्छा तरीका क्या है?

उदाहरण के लिए:

"something <something else>" 

वहाँ उस के लिए किसी भी में निर्मित समारोह है:

$a = "something <somthing else>"; 

निम्नलिखित करने के लिए परिवर्तित किया जाना चाहिए?

उत्तर

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

+0

'[System.Security.SecurityElement] :: एस्केप ($ textToEscape)' का उपयोग करने का एक विकल्प है। कुछ मतभेद मौजूद हैं; देखें: https://www.roelvanlisdonk.nl/2009/09/23/you-should-use-system-security-securityelement-escape-in-c-to-escape-special-characters-in-xml-and- नहीं-प्रणाली-वेब-httputility-htmlencode /। – JohnLBevan

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) बाहर छोड़ने के लिए समझ में आता है।

संबंधित मुद्दे

 संबंधित मुद्दे