2016-10-13 6 views
0

Я сжимаю строку, используя код ниже на C#.Строка Сжатие в C# и Декомпрессия в Javascript

public static string Compress(string text) 
{ 
    byte[] buffer = Encoding.UTF8.GetBytes(text); 
    MemoryStream ms = new MemoryStream(); 
    using (GZipStream zip = new GZipStream(ms, CompressionMode.Compress, true)) 
    { 
     zip.Write(buffer, 0, buffer.Length); 
    } 

    ms.Position = 0; 
    MemoryStream outStream = new MemoryStream(); 

    byte[] compressed = new byte[ms.Length]; 
    ms.Read(compressed, 0, compressed.Length); 

    byte[] gzBuffer = new byte[compressed.Length + 4]; 
    System.Buffer.BlockCopy(compressed, 0, gzBuffer, 4, compressed.Length); 
    System.Buffer.BlockCopy(BitConverter.GetBytes(buffer.Length), 0, gzBuffer, 0, 4); 
    return Convert.ToBase64String(gzBuffer); 
} 

Но такая же строка Я хочу разложить в Javascript.

Может ли кто-нибудь помочь мне в том, как распаковать Строка в Javascript?

Большое спасибо

ответ

0

Обычно, когда вы говорите о C# и JavaScript ИТС в контексте HTTP. Для HTTP вы оставите сжатие для транспортного уровня, а это означает, что сервер выполняет сжатие в соответствии с HTTP-переговорами о возможностях клиента и сервера. Сжатие выполняется либо через статические файлы, либо данные динамики, например веб-сервисы/веб-API. Инструкции по настройке сжатия в IIS см. В разделе this page.

Существует несколько причин, по которым вы не будете реализовывать его самостоятельно, начиная от сложности кода, стоимости обслуживания, времени, необходимого для реализации дополнительного риска ошибки.

Если у вас есть какая-то особая потребность в реализации сжатия между C# и JavaScript, проще всего использовать отраслевые стандарты. Ваш выбор gzip хорош. Популярная библиотека JavaScript, поддерживающая gzip, - pako.

Смежные вопросы