在.net服务器上压缩/解压缩在客户端使用lz-string.js编码的字符串
Compress/decompress string on .NET server that was encoded with lz-string.js on client
我正在使用lz-string.js的LZString.compressToBase64函数,需要在服务器端解压/压缩数据。
显而易见的解决方案似乎是lz_string_csharp,但我担心的是
这句话:
如果你只使用常规的Javascript 'compress'函数,那么根据字符串中的数据,它将无法在c#端正确解压缩。
但是,如果你正在使用c#版本内置的'compress'函数,那么你应该可以使用包含的常规'decompress'函数。
和关于这个报告的问题:c#版本的compressToBase64
你给出的链接中的完整描述说,你应该能够使用'compressToUTF16',它将始终工作,而不仅仅是'compress',这并不总是工作。
我已经亲自测试过了,看到它可以工作。
(虽然我改变了Context_Compress_Data。str字段从字符串转换为c#文件中的StringBuilder,因为它运行太慢了。在此之后,一个8mb的JSON文件压缩到原始大小的7%只需要8秒。
我们通过在下面两行(stringbuilder版本之前的原始文件第580行)之间添加enc1 = enc2 = enc3 = enc4 = 0;
来修复这个问题
据我所知,这个bug是由enc1, enc2等的值引起的…在每次循环开始时没有重置,所以有时循环的新迭代会得到与前一轮不同的值。
i += 3;
enc1 = enc2 = enc3 = enc4 = 0;
enc1 = (int)(Math.Round(chr1)) >> 2;
相关文章:
- “*[attribute ^="string”是如何/为什么是有效的querySelector?(JS bug
- 单击.之间具有特定名称的链接的JS.<>标签.我应该使用 window.find(string).click()、
- 如何将Scala Map[String,Map[String,String]]传递给Js Object
- 添加一个“;以及“;到String-js/Angular中的最后一个单词
- 将JavaScript代码迁移到具有String.prototype扩展名的node.js模块
- Node js readFile to String发出声音
- JS中的Shift Cipher(ROT-13)函数和String.fromCharCode的问题
- 为 STRING 创建一个语法表达式.字符串.PEG上的绳子.js
- Cocos2d 2.1.4 js HTML5 load text/string/json
- Node.js with Geddy:geddy.string.uuid(x) 是否确保字符串是唯一的
- 从String(纯JS)执行JavaScript代码
- 为什么可以从JS ScriptEngine eval(String)执行Java代码
- 为IE8优化JS-String.replace和String.match
- Regexp string JS
- JS: String.prototype.toUnderscore()
- Backbone.js打印“;函数String(){〔本机代码〕}"而不是模型属性
- 如何检查变量是否是函数Number()或函数String() js的类型
- 当我使用soyutils.js时,goog.string被覆盖
- 在.net服务器上压缩/解压缩在客户端使用lz-string.js编码的字符串
- Regex只存储在string-js中找到的一个匹配元素