例:
源字串:
mystringsd-2-2-2-2-2-2-2-2-2-
1. 用.net 自身的 GZipStream 压缩后结果
H4sIAAAAAAAEAO29B2AcSZYlJi9tynt/SvVK1+B0oQiAYBMk2JBAEOzBiM3mkuwdaUcjKasqgcplVmVdZhZAzO2dvPfee++999577733ujudTif33/8/XGZkAWz2zkrayZ4hgKrIHz9+fB8/Iha/xvWv0fwa7a9R/xrFr7H8NS7o99mvsf1r7N3i//8PJDNEmjoAAAA=
2. 用SharpZipLib压缩后结果
QlpoOTFBWSZTWeNQolIAAAsZgAACEAAEoxwgIAAho0mnlPUIBppoJoA0A08XnFPi7kinChIcahRKQA==
这不是坑么,还是我理解错了。 字符串压缩不就是把字符串变短一些么~ 求大神解释一下
7 个解决方案
#1
是你理解错了
压缩有压缩算法,可以将重复的字符串按某一规则表示,所以会缩短
但是如果你的源字符串本身就过短,则压缩字符串可能会更长(因为它本身有定义协议,头,尾,长度,等等)
而且如果你的字符串本身非常不规则,压缩后也有可能更长
压缩有压缩算法,可以将重复的字符串按某一规则表示,所以会缩短
但是如果你的源字符串本身就过短,则压缩字符串可能会更长(因为它本身有定义协议,头,尾,长度,等等)
而且如果你的字符串本身非常不规则,压缩后也有可能更长
#2
不讲微软定义的压缩算法,
假设我们自己做一个压缩算法
将重复的字母按某个规则表示
比如AAAA表示成[A,4]
如果有连续5个以上的A,则字符串会缩短.相反如果连续A的个数本身不足5个,反而更长.
假设我们自己做一个压缩算法
将重复的字母按某个规则表示
比如AAAA表示成[A,4]
如果有连续5个以上的A,则字符串会缩短.相反如果连续A的个数本身不足5个,反而更长.
#3
楼主自己去建立1byte的文本,然后zip下看看结果就明白了
#4
所谓的压缩,要指在一定文本大小下,进行压缩
你的样本如果很小,比如"hsahfasjkfasdasdsadasda"即使有不少重复的字母,但是压缩后,反而加上需要其他信息,就会变大
但是如果你把一个1mb的txt文档压缩,就会小很多.
不管是加密还是压缩, 一定要考虑成本
网络传输时,有些时候只需要加密, 不需要压缩
你的样本如果很小,比如"hsahfasjkfasdasdsadasda"即使有不少重复的字母,但是压缩后,反而加上需要其他信息,就会变大
但是如果你把一个1mb的txt文档压缩,就会小很多.
不管是加密还是压缩, 一定要考虑成本
网络传输时,有些时候只需要加密, 不需要压缩
#5
还有,net自带的GZipStream 是比较弱的.
所以SharpZipLib比GZipStream强
我以前接触过, 还有点印象,GZipStream弱爆了,只是一个比较稳定的压缩方法
另外,winrar, 你注意一下,最新的5.x我没有研究,但是3.x和4.x以下的版本的安装目录里, 有一个rar.exe的执行文件
你可以利用它给压缩, 它非常给力,无论是string,还是txt,都很不错!
强烈推荐!
SharpZipLib相比rar.exe就弱爆了.
所以SharpZipLib比GZipStream强
我以前接触过, 还有点印象,GZipStream弱爆了,只是一个比较稳定的压缩方法
另外,winrar, 你注意一下,最新的5.x我没有研究,但是3.x和4.x以下的版本的安装目录里, 有一个rar.exe的执行文件
你可以利用它给压缩, 它非常给力,无论是string,还是txt,都很不错!
强烈推荐!
SharpZipLib相比rar.exe就弱爆了.
#6
rar.exe的外调方法,c#的,网络上一搜索一大把
#7
rar在压缩时有5种模式,从最快到最好
最快基本就是单纯的将多文件整合成一个文件
最好是压缩比最高,当然也最慢.
最快基本就是单纯的将多文件整合成一个文件
最好是压缩比最高,当然也最慢.
#1
是你理解错了
压缩有压缩算法,可以将重复的字符串按某一规则表示,所以会缩短
但是如果你的源字符串本身就过短,则压缩字符串可能会更长(因为它本身有定义协议,头,尾,长度,等等)
而且如果你的字符串本身非常不规则,压缩后也有可能更长
压缩有压缩算法,可以将重复的字符串按某一规则表示,所以会缩短
但是如果你的源字符串本身就过短,则压缩字符串可能会更长(因为它本身有定义协议,头,尾,长度,等等)
而且如果你的字符串本身非常不规则,压缩后也有可能更长
#2
不讲微软定义的压缩算法,
假设我们自己做一个压缩算法
将重复的字母按某个规则表示
比如AAAA表示成[A,4]
如果有连续5个以上的A,则字符串会缩短.相反如果连续A的个数本身不足5个,反而更长.
假设我们自己做一个压缩算法
将重复的字母按某个规则表示
比如AAAA表示成[A,4]
如果有连续5个以上的A,则字符串会缩短.相反如果连续A的个数本身不足5个,反而更长.
#3
楼主自己去建立1byte的文本,然后zip下看看结果就明白了
#4
所谓的压缩,要指在一定文本大小下,进行压缩
你的样本如果很小,比如"hsahfasjkfasdasdsadasda"即使有不少重复的字母,但是压缩后,反而加上需要其他信息,就会变大
但是如果你把一个1mb的txt文档压缩,就会小很多.
不管是加密还是压缩, 一定要考虑成本
网络传输时,有些时候只需要加密, 不需要压缩
你的样本如果很小,比如"hsahfasjkfasdasdsadasda"即使有不少重复的字母,但是压缩后,反而加上需要其他信息,就会变大
但是如果你把一个1mb的txt文档压缩,就会小很多.
不管是加密还是压缩, 一定要考虑成本
网络传输时,有些时候只需要加密, 不需要压缩
#5
还有,net自带的GZipStream 是比较弱的.
所以SharpZipLib比GZipStream强
我以前接触过, 还有点印象,GZipStream弱爆了,只是一个比较稳定的压缩方法
另外,winrar, 你注意一下,最新的5.x我没有研究,但是3.x和4.x以下的版本的安装目录里, 有一个rar.exe的执行文件
你可以利用它给压缩, 它非常给力,无论是string,还是txt,都很不错!
强烈推荐!
SharpZipLib相比rar.exe就弱爆了.
所以SharpZipLib比GZipStream强
我以前接触过, 还有点印象,GZipStream弱爆了,只是一个比较稳定的压缩方法
另外,winrar, 你注意一下,最新的5.x我没有研究,但是3.x和4.x以下的版本的安装目录里, 有一个rar.exe的执行文件
你可以利用它给压缩, 它非常给力,无论是string,还是txt,都很不错!
强烈推荐!
SharpZipLib相比rar.exe就弱爆了.
#6
rar.exe的外调方法,c#的,网络上一搜索一大把
#7
rar在压缩时有5种模式,从最快到最好
最快基本就是单纯的将多文件整合成一个文件
最好是压缩比最高,当然也最慢.
最快基本就是单纯的将多文件整合成一个文件
最好是压缩比最高,当然也最慢.