需要纯JS文本解压缩解决方案(CQAAAB + LCAAAAAAABABzzs / LS00uSU0BABaaRpgJAAAA),相当于英语的“ connected”,是从对具有C#GZIP流压缩/解压缩的服务器的ajax调用中接收到的。经历了许多建议/解决方案,例如pako.js
,zlib.js
,但我相信所有这些都是服务器端和/或nodejs解决方案。我不知道nodejs是否会对我有所帮助(,因为我不知道nodejs ),因为我需要将简单的html脚本标记解决方案包含在我的.html文件中。
有人提到Browserify
可以包含所有内容,但也可以使用npm
完成。
问题:
在C#端使用的代码段(用于解压缩):
public static string decompressText(string compressedText)
{
compressedText = compressedText.Replace("\uFEFF", "");
//compressedText = "CQAAAB+LCAAAAAAABABzzs/LS00uSU0BABaaRpgJAAAA";
byte[] gzBuffer = Convert.FromBase64String(compressedText);
using (MemoryStream ms = new MemoryStream())
{
int msgLength = BitConverter.ToInt32(gzBuffer, 0);
ms.Write(gzBuffer, 4, gzBuffer.Length - 4);
byte[] buffer = new byte[msgLength];
ms.Position = 0;
using (GZipStream zip = new GZipStream(ms, CompressionMode.Decompress))
{
zip.Read(buffer, 0, buffer.Length);
}
return Encoding.UTF8.GetString(buffer);
}
}
需要一些解决方案,例如(我会做包装,但需要正确的压缩/解压缩功能):
<!DOCTYPE html>
<head>
<script src="path_to/some_compression_decompression.js"></script>
<script>
var text = 'compressedData';
var libObj = new some_compression_decompression_class();
console.log(libObj.decompress(text)); // output decompressed data
</script>
<head>
<body>
</body>
</html>