我正在使用lz-string.js的LZString.compressToBase64函数,需要在服务器端解压缩/压缩数据。
显而易见的解决方案似乎是lz_string_csharp,但我担心
这句话:
如果您只使用常规Javascript'压缩'函数然后根据字符串中的数据,它不会在C#端正确解压缩。
但是,如果你正在使用'压缩'在这个C#版本中内置的功能,那么您应该可以使用常规'解压缩'功能包括在内。
答案 0 :(得分:1)
您提供的链接中的完整说明表明您应该可以使用' compressToUTF16'它将始终有效,而不仅仅是“压缩”,它不会一直有效。
我亲自测试了它并发现它有效。
(虽然我将Context_Compress_Data.str字段从字符串更改为C#文件中的StringBuilder,因为它运行速度太慢。之后,8 MB JSON文件仅需8秒,压缩为7%原始大小。)
答案 1 :(得分:0)
我们通过在下面的两行之间添加enc1 = enc2 = enc3 = enc4 = 0;
来修复此问题({03}中的第580行在stringbuilder版本之前)
从我记忆中来看,这个bug是由enc1,enc2等的值引起的......没有在每个循环开始时被重置,所以有时循环的新迭代有来自前一轮的错误值。
i += 3;
enc1 = enc2 = enc3 = enc4 = 0;
enc1 = (int)(Math.Round(chr1)) >> 2;