Javascript LZ字符串压缩检查字符串是否已压缩
我正在使用LZ字符串库压缩/解压缩字符串,并将它们保存在localStorage中 因为压缩将应用于现有项目,客户的未压缩字符串已保存在localStorage上。有没有办法知道保存的字符串是否已压缩 有时,当您尝试解压缩未压缩的字符串时,会得到Javascript LZ字符串压缩检查字符串是否已压缩,javascript,string,compression,lzw,Javascript,String,Compression,Lzw,我正在使用LZ字符串库压缩/解压缩字符串,并将它们保存在localStorage中 因为压缩将应用于现有项目,客户的未压缩字符串已保存在localStorage上。有没有办法知道保存的字符串是否已压缩 有时,当您尝试解压缩未压缩的字符串时,会得到Null或空字符串,但某些字符仍然被“错误”解压缩。例如: LZString.decompressFromUTF16("O"); //returns null LZString.decompressFromUTF16("J&
Null
或空字符串,但某些字符仍然被“错误”解压缩。例如:
LZString.decompressFromUTF16("O"); //returns null
LZString.decompressFromUTF16("J"); //returns string 0x80
此外,如果我试图解压缩单词Jam
我不会得到空的结果,而只是一个字符串
LZString.decompressFromUTF16("Jam"); //returns string 0x80
下面是一个带有示例的JSFIDLE
有什么想法吗?谢谢我认为一个更好的结构化替代方案是将压缩字符串保存为这样一种格式,您可以轻松检测它是否被压缩。例如,与其做:
localStorage.property = someCompressedString;
做点像
localStorage.property = JSON.stringify({ compressed: true, payload: someCompressedString });
// or, if there isn't a chance of collisions with the following approach:
localStorage.property = 'compressed-true---' + someCompressedString;
然后检查该值是否为JSON可解析值或以
compressed true---
开头,并根据需要提取压缩字符串部分。太好了!,但是我想知道是否有某种内置的替代方法,比如LZString.isCompressed(string)
或者其他方法来创建一个函数来检测压缩字符串。