我这几天刚好在 google 这个问题,把自己一些心得体会发在这里吧,算是给自己的一个总结
rar 的 Recovery Record (恢复记录)确实是独树一帜的功能,使用的是 Reed – Solomon error correction(里德-所罗门纠错码),对于网络上发布多、大文件(比较典型就是 3A 大型游戏安装程序的分包,一分就是几十个 1G 的包)很有帮助,当包文件出错的时候,可以恢复
并非只有它家支持,FreeArc 也一样支持,但是不知道为什么有 7-8 年没有再更新了
7zip 如果配合 QuickPar 也可以支持类似的功能
不过我感觉大部分的用户是使用不到恢复记录这种功能的
然后 ,尝试回答楼主的问题:
恢复记录有多(不)靠谱?
-- 默认情况下恢复记录大约是 1%的冗余,如果你文件损坏部分小于 1%那么修复是靠谱的,这足以应付 99%以上文件轻微损坏的情况,而如果文件损坏超过 1%,说明网络真的非常有问题,先修复网络吧
用 rar 还是 7z ?
-- 如果是网络上发布多、大文件(比较典型就是 3A 大型游戏安装程序的分包,一分就是几十个 1G 的包)的情况,使用 rar,当然你要考虑使用盗版或者给 WinRAR 交钱,或者忍受免费版的广告
用 rar 的时候会加上恢复记录吗?否:那为啥不用 zip/7z
-- 如果不加恢复记录,压缩率 zip < rar < 7z,压缩时占用 CPU 内存,7z > rar > zip,所以 rar 算是一种比较折衷的方案,但是 7zip 其实有各种压缩算法可选,所以我认为没必要使用 rar
何时使用 rar with 恢复记录,何时使用 7z ?
-- 正如前面所说,如果是网络上发布多、大文件(比较典型就是 3A 大型游戏安装程序的分包,一分就是几十个 1G 的包)的情况
(换句话说:是不是遇到损坏了的带有恢复记录的 rar 的时候就只能用 WinRAR 救?)
--(基本上可以肯定,rar 创建的恢复记录肯定只有 winrar 程序能救)
另外补充一下,如果实在不想用 rar,并且想用 7zip,可以再配合使用 QuickPar 之类的程序生成校验文件,但是除了.7z 文件外,你要还要附带一个.par2 的检验文件,会麻烦一些,对下载者也更不友好一些
@
kmdgeek 另外 zip 有乱码问题,是因为官方的 zip 标准中,并没有规定要使用什么编码,因此在不同的操作系统、或者不同语言的操作系统上,zip 文件的编码各不相同,比如简体中文的 Windows XP 就是使用 GBK 编码,这样拿到 Big5 的繁体系统上肯定就乱码了。
但是如果你不使用操作系统自带的 zip 程序,比如 Windows 自带的 zip 程序,而是使用比如 7zip 中的 zip 压缩程序,现在默认都是使用 unicode
这样一来,估计大家都不在乎是否有一个 zip 2.0 了,但是标准没有统一,确实带来不便