cosa è un'alternativa per la funzione di escape javascript in C# per esempio supponiamo una stringa: "Ciao Foster mi manca/tu" darai "Ciao% 20Foster% 27s% 20i% 27m% 20missing% 20/you "se usiamo la funzione javascript escape, ma qual è l'alternativa per C#. l'ho cercato ma non serveC# alternativa per javascript escape function
risposta
string myString = "Hello my friend";
myString = myString.Replace(" ", "%20");
Questo sostituirà tutti "" con "% 20".
E 'questo quello che volevi?
HttpUtility.UrlEncode() lo fa per te – Emmanuel
La soluzione migliore che ho visto è menzionata su questo blog - C#: Equivalent of JavaScript escape function di Kaushik Chakraborti. C'è molto altro da sfuggire a javascript piuttosto che semplicemente la codifica dell'URL o la sostituzione di spazi con le entità.
+1 Sì la funzione 'escape' è una bestia unica e URLEncode semplicemente non si comporta allo stesso modo. –
@Dan Diplo: thnx amico, ma l'ho già visto, non usare – FosterZ
Nella risposta che ho postato, ho incluso il codice da Reflector per questa funzione –
seguito è l'implementazione escape
funzione che si può trovare in Microsoft.JScript.dll ...
[NotRecommended("escape"), JSFunction(JSFunctionAttributeEnum.None, JSBuiltin.Global_escape)]
public static string escape(string str)
{
string str2 = "ABCDEF";
int length = str.Length;
StringBuilder builder = new StringBuilder(length * 2);
int num3 = -1;
while (++num3 < length)
{
char ch = str[num3];
int num2 = ch;
if ((((0x41 > num2) || (num2 > 90)) &&
((0x61 > num2) || (num2 > 0x7a))) &&
((0x30 > num2) || (num2 > 0x39)))
{
switch (ch)
{
case '@':
case '*':
case '_':
case '+':
case '-':
case '.':
case '/':
goto Label_0125;
}
builder.Append('%');
if (num2 < 0x100)
{
builder.Append(str2[num2/0x10]);
ch = str2[num2 % 0x10];
}
else
{
builder.Append('u');
builder.Append(str2[(num2 >> 12) % 0x10]);
builder.Append(str2[(num2 >> 8) % 0x10]);
builder.Append(str2[(num2 >> 4) % 0x10]);
ch = str2[num2 % 0x10];
}
}
Label_0125:
builder.Append(ch);
}
return builder.ToString();
}
codice preso dal riflettore.
var unescapedString = Microsoft.JScript.GlobalObject.unescape(yourEscapedString);
var escapedString = Microsoft.JScript.GlobalObject.escape(yourUnescapedString);
La soluzione migliore che ho visto è citato su questo blog - C#: Equivalente della funzione fuga JavaScript Kaushik Chakraborti. C'è molto altro da sfuggire a javascript piuttosto che semplicemente la codifica dell'URL o la sostituzione di spazi con le entità.
Ho notato un'altra soluzione nei commenti dell'articolo KodeSharp che potrebbe essere migliore. Il commento dice che è più compatibile con UTF-8 e non richiede il riferimento a JScript. È meglio questo?
(Dipendente System.Web.Extensions.dll)
using System.Web.Script.Serialization;
JavaScriptSerializer serialiser = new JavaScriptSerializer();
serialiser.Serialize("some \"string\"")
Ho provato questa soluzione, ma Javascript unescape non l'ha "deserializzato". Dovrei buttarlo nel Refelector per vedere cosa fa veramente. – evodev
È possibile utilizzare:
string encoded = HttpUtility.JavaScriptStringEncode(str);
Nota: Avete bisogno di almeno ASP.NET 4.0 per eseguire il codice di cui sopra .
- 1. Vanilla alternativa a jQuery $ .data function(): qualsiasi nativo alternativa javascript?
- 2. Unescape JavaScript escape() utilizzando C#
- 3. javascript function vs. (function() {...}());
- 4. magento escape string per javascript
- 5. Javascript toFixed function
- 6. function()() in javascript
- 7. Variabile Escape Moustache contenente apostrofo per JavaScript
- 8. std :: vector alternativa per C
- 9. Alternativa JavaScript al ciclo "per ogni"
- 10. C++ TerminateProcess function
- 11. C readline function
- 12. Regole per caratteri letterali stringa C++ escape
- 13. (function() {})() dichiarando/inizializzazione funzione javascript
- 14. NoSQL alternativa libera (in alternativa a RavenDB) per C# sviluppo
- 15. Javascript: prestazioni di var functionName = function() {} vs function Nome funzione() {}
- 16. C sqrt function programmazione
- 17. C# ModInverse Function
- 18. SDL2.0 alternativa per SDL_Overlay
- 19. call javascript function on hyperlink click
- 20. File system filename escape? C#
- 21. Alternativa per la chiave C in Emacs?
- 22. C++ definizione alternativa membro
- 23. Alternativa a C++ eccezione
- 24. Return Structure from Function (C)
- 25. C++ alternativa al perror()
- 26. C# e WUAPI: BeginDownload function
- 27. C++ 11 alternativa pthread_cond_timedwait
- 28. chiusura C++ e std :: function
- 29. iniziare codice javascript con $ (function, ecc
- 30. alternativa per il __proto__ deprecato
cosa stai cercando di fare? –
ragazzi, ho provato followin 'ma nessuno di loro sostituisce la citazione singola "'". Uri.EscapeDataString ("un po 'di testo") Uri.EscapeUriString ("un po' di testo") System.Web.HttpUtility.UrlEncode ("un po 'di testo") System.Web.HttpUtility.UrlPathEncode ("alcuni thext") – FosterZ