UrlEncode - JavaScript по сравнению с C# [дубликат]

Почему бы вам не собрать все в блок действий, который имеет действительное ограничение?

var count = 0;
var ab1 = new TransformBlock<int, string>(l => $"1:{l}");
var ab2 = new TransformBlock<int, string>(l => $"2:{l}");
var doPrint = new ActionBlock<string>(
    async s =>
    {
        var c = Interlocked.Increment(ref count);
        Console.WriteLine($"{c}:{s}");
        await Task.Delay(5);
        Interlocked.Decrement(ref count);
    },
    new ExecutionDataflowBlockOptions { MaxDegreeOfParallelism = 15 });

ab1.LinkTo(doPrint);
ab2.LinkTo(doPrint);

for (var i = 100; i > 0; i--)
{
    if (i % 3 == 0) await ab1.SendAsync(i);
    if (i % 5 == 0) await ab2.SendAsync(i);
}

ab1.Complete();
ab2.Complete();

await ab1.Completion;
await ab2.Completion;
6
задан Martin 20 March 2010 в 13:00
поделиться

5 ответов

Система. Сеть. HttpUtility. UrlEncode будет использовать UTF8 (я думаю..) как его кодер по умолчанию, можно изменить это путем определения один..

System.Web.HttpUtility.UrlEncode("éléphant", Encoding.Default); // %e9l%e9phant

Хотя может быть предпочтительно указать фактическую кодовую страницу или что не, вместо того, чтобы полагаться на значение по умолчанию ОС.

10
ответ дан 8 December 2019 в 03:54
поделиться

Ссылка:

js:       %E9 l     %E9 phant
.net: %c3 %a9 l %c3 %a9 phant

Различие - то, что каждый UTF-8 Кодирование URL, тогда как другой дает Вам ANSI Кодирование URL.

В.NET попробуйте:

Dim a As String = System.Web.HttpUtility.UrlEncode( _
    "éléphant", _
    Text.Encoding.Default)

Я добираюсь

    %e9 l     %e9 phant

в результате. Это соответствует строке, Вы предусмотрели JavaScript, за исключением случая Шестнадцатеричного символа.

5
ответ дан 8 December 2019 в 03:54
поделиться

В JavaScript (по данным этого WebSite: http://www.albionresearch.com/misc/urlencode.php), я получаю следующее: %E9l%E9phant.

Та страница является неправильной. JavaScript также использует UTF-8, как.NET делает по умолчанию. Попробуйте его сами:

javascript:alert(encodeURIComponent('éléphant'))
%C3%A9l%C3%A9phant

URL сегодня являются UTF-8. Не пытайтесь использовать cp1252 больше. UTF-8 является Вашим другом. Доверительный UTF-8!

7
ответ дан 8 December 2019 в 03:54
поделиться

Кодирование. Значение по умолчанию будет только работать на Вас, если текущая кодовая страница Вашей системы будет установлена на западноевропейца. Теперь это могло бы быть важно, если JavaScript также работает на той же машине как кодер.NET, но в противном случае затем можно вызвать кодовую страницу к западноевропейской:

System.Web.HttpUtility.UrlEncode("éléphant", Encoding.GetEncoding(1252));
3
ответ дан 8 December 2019 в 03:54
поделиться

Вы могли также попробовать base64, кодирующий их.

Существует предыдущее сообщение, которое имеет дело с выполнением его в JavaScript.

Что касается в.NET, существует много примеров, показывающих, как сделать это. Вот тот, который я нашел от Google.

Конечно, строки могли бы быть немного больше, чем urlencoding. Однако они будут запутываться, который может быть преимуществом в зависимости от приложения.

2
ответ дан 8 December 2019 в 03:54
поделиться
Другие вопросы по тегам:

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