was ist das c # äquivalent zu javascript's unescape ()?

8

Ich versuche einige JavaScript zu analysieren, und eine Zeile ist

%Vor%

mit vielen Zeichen in der Form %uxxxx .

Ich möchte die JavaScript in c# neu schreiben, aber ich kann die richtige Funktion nicht finden, um eine Zeichenkette wie diese zu dekodieren. Ich habe es versucht

%Vor%

aber das hat diese Charaktere überhaupt nicht verändert.

Wie kann ich das in c # erreichen?

    
vivek a. 26.07.2011, 17:09
quelle

6 Antworten

13

Sie können UrlDecode verwenden:

%Vor%

decoded würde dann "䅁䅁" enthalten.

Wie andere darauf hingewiesen haben, würde das Ändern von % in \ funktionieren, aber UrlDecode ist die bevorzugte Methode, da dies sicherstellt, dass auch andere Symbole mit Escapezeichen korrekt übersetzt werden.

    
dlev 26.07.2011 17:13
quelle
4

Sie benötigen HttpUtility.UrlDecode . Sie sollten heutzutage nicht wirklich escape/unescape verwenden, Sie sollten Dinge wie encodeURI/decodeURI/encodeURIComponent verwenden.

Wann sollten Sie escape anstelle von encodeURI / encodeURIComponent verwenden?

Diese Frage behandelt das Problem warum escape/unescape sind eine schlechte Idee.

    
andynormancx 26.07.2011 17:17
quelle
2

Sie können die bellow-Methode aufrufen, um den gleichen Effekt zu erzielen wie die Javascript-Methode escape / unescape

%Vor%     
hs.jalilian 30.06.2012 14:23
quelle
0

Ändern Sie die% -Zeichen in umgekehrte Schrägstriche, und Sie haben ein C # -Zeichenfolgenliteral. C # behandelt \ uxxxx als Escape-Sequenz, wobei xxxx 4 Ziffern lang ist.

    
Brian Gordon 26.07.2011 17:14
quelle
0

In Basic-String-Verwendung können Sie String-Variable in Unicode initiieren: var someLine="\ u4141"; Wenn es möglich ist - ersetzen Sie alle "% u" durch "\ u".

    
DrAlligieri 26.07.2011 17:16
quelle
0

Bearbeiten Sie die Datei web.config den folgenden Parameter:

< globalization requestEncoding="iso-8859-15" responseEncoding="utf-8" >responseHeaderEncoding="utf-8" in < system.web >

    
dougstefe 29.11.2013 14:10
quelle

Tags und Links