Альтернатива C# для JavaScript выходит из функции

что является альтернативой для функции Escape JavaScript в c# для, например, предположите строку: "Привет Foster, я пропускаю / Вы", даст "Hi%20Foster%27s%20i%27m%20missing%20/you", если мы будем использовать функцию Escape JavaScript, но какова альтернатива для c#. я искал его, но быть бесполезное.

8
задан FosterZ 23 March 2010 в 12:59
поделиться

3 ответа

string myString = "Hello my friend";
myString = myString.Replace(" ", "%20");

Это заменит все "" на "% 20".

Это то, что вы хотели?

0
ответ дан 5 December 2019 в 04:49
поделиться

Лучшее решение, которое я видел, упомянуто в этом блоге - C #: эквивалент escape-функции JavaScript от Kaushik Chakraborti. Для экранирования javascript есть нечто большее, чем просто кодирование URL-адресов или замена пробелов сущностями.

6
ответ дан 5 December 2019 в 04:49
поделиться

Далее следует escape , которую вы найдете в Microsoft.JScript.dll ...

[NotRecommended("escape"), JSFunction(JSFunctionAttributeEnum.None, JSBuiltin.Global_escape)]
public static string escape(string str)
{
    string str2 = "0123456789ABCDEF";
    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();
}

Код взят из Reflector.

4
ответ дан 5 December 2019 в 04:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: