Javascript escape() in C# – ein C# äquivalent zur escape()-Funktion

csharp_vs_javascriptDas .Net-Framework bietet eine große Anzahl an Möglichkeiten, um HTML-Code und Urls zu encodieren. Da wären zum Beispiel Uri.EscapeDataString(), Uri.EscapeUriString(), System.Web.HttpUtility.UrlEncode(), System.Web.HttpUtility.UrlPathEncode(), System.Web.HttpUtility.HtmlEncode() oder System.Web.HttpUtility.HtmlAttributeEncode().

Wenn man jedoch eine gleichwertige Funktion zu Javascript‘s escape() sucht, so wird man von all diesen Funktionen enttäuscht. Keine dieser standardmäßig vom .Net-Framework mitgelieferten Funktionen ist äquivalent zur Javascript escape()-Funktion.
Zur Verdeutlichung habe ich mal folgendes Beispiel gemacht:

// Original Ausgangsstring
// Raffi's ärgerlicher C# Teststring/Testcode.

// JS Original (erzeugt durch escape() )
// Raffi%27s%20%E4rgerlicher%20C%23%20Teststring/Testcode.

// Uri.EscapeDataString():
// Raffi's%20%C3%A4rgerlicher%20C%23%20Teststring%2FTestcode.

// Uri.EscapeUriString():
// Raffi's%20%C3%A4rgerlicher%20C#%20Teststring/Testcode.

// System.Web.HttpUtility.UrlEncode():
// Raffi%27s+%c3%a4rgerlicher+C%23+Teststring%2fTestcode.

// System.Web.HttpUtility.UrlPathEncode():
// Raffi's%20%c3%a4rgerlicher%20C#%20Teststring/Testcode.

// System.Web.HttpUtility.HtmlEncode():
// Raffi's ärgerlicher C# Teststring/Testcode.

// System.Web.HttpUtility.HtmlAttributeEncode():
// Raffi's ärgerlicher C# Teststring/Testcode.

Doch ich würde nicht darüber bloggen, wenn ich nicht auch eine Lösung parat hätte. Und diese ist gar nicht mal so kompliziert.

Schritt 1:

Fügt eurem Projekt einen Verweis auf Microsoft.JScript hinzu.

microsoft jscript verweis hinzufügen

Schritt 2:

Nun steht euch die Funktion Microsoft.JScript.GlobalObject.escape() zur Verfügung. Diese wandelt einen übergebenen String exakt so um, wie es die Javascript escape()-Funktion auch tut. (Das liegt daran, dass ihr mittels dieser Methode auf die Microsoft eigene JScript-Engine zugreift.) Und mittels dieser Funktion klappt nun auch das oben genannte Beispiel.

// Original Ausgangsstring
// Raffi's ärgerlicher C# Teststring/Testcode.

// JS Original (erzeugt durch escape() )
// Raffi%27s%20%E4rgerlicher%20C%23%20Teststring/Testcode.

// Microsoft.JScript.GlobalObject.escape():
// Raffi%27s%20%E4rgerlicher%20C%23%20Teststring/Testcode.

Ich hoffe ich konnte dem ein oder anderen unter euch weiterhelfen. Kennt ihr vielleicht noch eine andere oder vielleicht bessere Möglichkeit um in C# die Javascipt escape()-Funktion nachzubilden?

2 Kommentare

  1. Auf besteonlinecasinosoesterreich.at finden Spieler wertvolle Informationen über sichere und faire Online-Casinos. Um die besten Optionen zu finden, können Spieler navigate here. Regulierende Online-Casinos bieten Schutz für Spieler und gewährleisten faire Spielbedingungen, was das Vertrauen in die Plattform stärkt.

  2. Maybe in the future it’ll do even better in those areas, but for now it’s a fantastic way to organize and listen to your music and videos, and is without peer in that regard. The iPod’s strengths are its web browsing and apps.

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Sie dient nur dem Spamschutz.