百科问答小站 logo
百科问答小站 font logo



古代战争中,骑兵对步兵的优势究竟从何而来? 第1页

  

user avatar   sa-sa-li-an-34 网友的相关建议: 
      

速度,冲锋威力,情报搜集能力,战略机动能力和短途的突袭能力,全方位碾压步兵。总有人说步兵靠严密的阵型和纪律就能击溃骑兵,但问题是,军队作战的时候,大部分时间都不是列阵作战状态,更多都是行军的状态。而骑兵的突然袭击发生时,那能给步兵从容列阵的时间呢。

从时间差上来说,步兵列阵也是需要各层号令来协调的,而且步兵列阵也需要话费一定的时间,不能着急,越急越乱,而骑兵完全没有这种协调上的限制。紧靠胯下四条腿的马就能实现比步兵更迅速的集结和分散。更关键的是,无论是骑兵还步兵兵力都是有限的,不可能都把优势的兵力投入到每一个防线,因此,步兵列阵的情况下只能把重兵聚集到一个点才能做到严密的防守,骑兵同样也是兵力有限的,但是骑兵可以快速机动呀,可以比步兵更快的集结兵力形成局部的人数优势呀。而 步兵想要调动其他防线的兵力去调整部署,比骑兵慢太多了,只要骑兵军官是正常人,都是可以轻易的击溃步兵集群的。带步兵的军官往往都需要名将级的人选才能打败指挥能力一般的骑兵军官。相比之下,如果步兵名将碰上擅长指挥骑兵的名将,那么前者无悬念的会失败。因为后者可以比前者更容易抓住破绽,抓住有利战机和有利的情报。在没有骑兵的掩护下,步兵的情报搜集以及补给获取能力几乎为0,这也是为什么一个善于指挥步兵的军官依然需要上级给他抽点小部分骑兵,因为没有机动力量,就意味着你对战场信息的掌控能力弱小,失去骑兵的支持,步兵就是一群瞎子。而骑兵多的军队,往往情报能力非常强大,比如几个侦查的游骑就能牢牢的盯着一大坨步兵的运动方向和大概的规模,而步兵却很难有效掌握骑兵为主的部队的情报。等步兵反应过来的时候,侦查的骑兵已经早就跑光了,等步兵完成协调改变原定部署的时候,骑兵已经闻讯而至了,导致你的新计划被迫破产,根本来不及协调人力应对这种突发情况。总之,机动,战场掌控和协调效率,步兵就已经被骑兵完爆了。而步兵此时唯一的优势就是人数往往比骑兵多数倍人,在有补给和临时工事的情况下跟骑兵对耗了。

要知道,大部分时间里,步兵的数量要远远多于骑兵的数量,因此,虽然人多势众集中在一点重点防御,骑兵确实很难收拾掉这一大坨的步兵,但是步兵人数太多的代价就是,协调效率远远低于骑兵的一方。因此,往往大部分时间都会发生几千骑兵一个锤毡战术打穿了步兵的结合部,就会发生步兵单方面被骑兵屠杀的状况。这种情况的发生也就不得不涉及到容错率的问题,那就是,骑兵就算被步兵击溃数次,也能全身而退重新整顿再战,主动权依然在骑兵的一方,而步兵只能挨打,就算步兵大胜骑兵,也都是击溃战,很少能完全歼灭骑兵,因为打赢了追不上,无法扩大战果,打输了跑不掉,被骑兵包饺子,当做牲畜宰割。于是,这意味着,步兵只要失误一次被骑兵抓住了破绽,就寄了。而步兵就算抓住了骑兵的破绽,也只能闻马的臭屁和扬起来的尘土,因为根本就追不上。而步兵想要快速机动追击,那就意味着无法保证原有的防御队形,那么阵型自然就会因为追击而松垮分散,而这时候,骑兵在看到步兵自己分散掉的话,立马杀一个回马枪,,,,,,,,,,,那么步兵原地傻眼...............。

至于骑兵和步兵干起来的时候的战损交换比嘛,不恰当的形容,步兵对付骑兵,就好比一大群人围追堵截一个飞车贼,然后付出了被撞死撞残好几个人,才把他抓住。而骑兵对付步兵就是开着皮卡一路横冲直撞,最后车没油了被一群人拖出车围殴致死,但是自己却在被打死前就压死了一大堆人。近些年各地不正规的马术比赛已经发生过很多次因为控马不当,导致马脱离赛道撞死撞伤一大群观众的案例了。甚至几年前还发生动物园里的疯马跑到大街上撞死人的事件,最后靠警察开枪击毙了疯马,才阻止它。


user avatar   yi-li-bi-ya-bu-bing 网友的相关建议: 
      

众所皆知,法兰克骑士冲锋起来能撞倒城墙。

同样众所皆知的,力是相互的。

所以面对阵型严正士气充足的步兵时,敢于正面冲锋的骑兵指挥官,不是能够快速发现敌方阵线薄弱点的骑兵天才,就是睿智。

为何步兵比较正规的时代骑兵通常布置在战阵的两侧而非正面。(你若是对面步兵都是临时抓来的农夫正面冲锋就算了。)

因为战术上骑兵的主要作用就是追杀敌军,保护侧翼,或在击败对方骑兵后捶击对方侧后方。即使无法直接击溃敌军步兵,打乱其阵型也是很有用的。

什么?骑射无双?放风筝?你以为你的骑弓射的过步弓?(汉武库中几乎人手一把弓弩,骑弓由于腿部不易发力射程威力不如步弓。)

什么?算上骑马提供的速度,骑射的射程比步射高?你真他喵的是个小天才。


user avatar   zhang-chen-xu-38 网友的相关建议: 
      

骑兵最大的优势在于对士气恐怖的打击能力:

某些答主说“任何时代的重骑兵正面冲阵,都是找死”,这句话简直是对古代战争一无所知,毕竟大部分的RTS游戏都没有一个叫“士气”的东西。

重骑兵连人带马总计有半吨重,超过三十公里/小时的速度,以及远比步兵精良的盔甲,盾牌和武器。不管你的步兵是枪阵还是盾阵,只要重骑兵决定冲锋,前三排的步兵必死无疑,而骑兵在马匹的掩护下,生存的概率还是很高的。大家想一下,必死的事情有多少人原意去做呢?

这就有了步骑对决中第一个典型的场景,重骑兵刚刚开始冲锋,所谓严密的步兵方阵就自行瓦解了,连将带兵跑的干干净净。比如公元1126年宋金太原之战时,完颜活女率骑兵约七千人迎战宋将种师中所率西军十万人,战斗刚刚开始,种师中的十万大军就跑了个无影无踪,本人也身死敌阵。

骑兵第二个优势在于,短时间内破阵的能力:

上面我已经说了只要重骑兵决定冲锋,步兵的前三排必死无疑;换句话说,只要骑兵指挥官愿意不计代价的发起进攻,一定能在敌阵上凿一个洞出了,如何利用这个洞扩大优势,就是指挥官自己的问题了。

大家应该都知道,杀死一个人是不需要把手足四肢都砍掉的,只要用利刃刺破对手的心脏就足够了,而重骑兵就是这把利刃。重骑兵最典型的战术就是从敌军的薄弱地带向主将发起冲击,迫使敌主将撤退或者直接斩杀敌酋。一旦主将撤退或者被杀,这对敌军的士气和指挥能力会造成毁灭性的打击。封建时代,还没有哪只军队在主帅逃亡或者被斩的前提下还能继续作战的,哪怕是号称封建时代军事巅峰的八旗军也不行。

典型的案例就太多了,比如公元208年,张辽以精骑800突袭吴军,孙权在张辽的攻势下被迫撤退,同时带动大军全线崩溃,一战打响了孙十万的威名。

公元1115年,护步达岗之战,金军以精骑两万人冲击辽国中军,辽军不能抵挡,天祚帝被迫撤退,带动辽大军二十余万自行解体,死伤无数。

公元1647年,清军与大西军战于四川凤凰山,清军以轻骑突袭,将张献忠当场射杀,随后大西军发生内讧,被迫远走云南。

玩过全面战争的人都知道,士气才是你真正的血量。古代战争中,真正死于战斗的士兵一般不会超过3%,哪怕最精锐的部队也无法承受10%的伤亡,所谓“伏尸百万,血流千里”都是在战后追逃的时候发生的。只要骑兵突破敌阵,斩杀敌将或迫使敌将后退,就能对敌方士气造成毁灭性的打击;只要敌军崩溃,不管前期战斗过程中交换比如何,从整场战役来看都是赚的。

骑兵第三个优势就是追逃以及逃跑:

南宋在总结宋金战争教训时说这么一句话,非常有道理:

彼有胜负,我有存亡

上文以及说了,古代战争中伤亡的大头在于追逃,在战术层面,步兵显然是追不上骑兵的;这种情况下,以步兵为主的军团哪怕十战九胜,最后算总伤亡时也是吃亏的。

接下来,我们再说骑兵的几个劣势:

第一,远程火力极差

这时对于轻骑兵而言的,骑射所用的弓磅数较小,又因骑在马上无法进行齐射,无论威力还是射程都远远小于步射手。大家看看清代的武举记录就能知道,步射射击五十步外的靶子几乎是百发百中,而骑射射击二十步外的靶子,整体命中率连一半都没有。所以想要用轻骑兵骚扰对手的想,洗洗睡吧。

第二,对补给的要求极高

马的食量超过人的五倍,对水的需求更是接近于人的十倍;所以骑兵往往比步兵更依赖于补给线,维持庞大骑兵团的代价也是非常高的,能选择的路线也是非常少。让骑兵绕过敌军主力去偷袭敌军后方,往往都是不成功便成仁的买卖。

不知道有没有人好奇,在汉匈战争中,以骑兵为主的匈奴人反而很容易被汉军偷袭?

这就是吃了骑兵队补给依赖高的亏,大批的马队就像蝗虫过境一样,几天时间就可以把一个地方吃的寸草不生。所以匈奴人的大军必须根据气候,沿着固定的路线进行迁徙。而汉朝将领,哪怕李广利这种二流货色,也能根据气候情况推算出匈奴骑兵出现的位置。

第三,骑兵指挥难度极高

大家玩全战的时候,可能经常用骑兵攻击敌人的侧翼乃至绕后;但真实战场上这两点都很难做到,因为现实世界的指挥官没有间谍卫星和无线电。只要骑兵团出发,在战役结束前,最高指挥官就很难再对这只部队下达新的命令。

对于骑兵指挥官来说,由于骑在马上,没有了传统金鼓吹打,对部队本身的控制能力也大大减弱了。只能执行冲锋,撤退等几个最简单的命令。例如转向,前往指定地点等复杂战术都必须在战前约定,临时更改只会导致部队自行崩溃。而且骑兵指挥官骑在马上,视野非常不好,对战场全局的把握能力也大大减弱了,很难做出正确的判断。

典型的案例就是公元1815年的滑铁卢之战,此战中法军骑兵发起进攻后,迫使英军转为矩形阵;按惯例,此时骑兵应该从撤向两翼,由步兵和炮兵上前射击,利用火力优势击垮敌军后继续进攻。但是英军结阵的位置非常特殊,在山岭的背面,步兵和炮兵的火力无法覆盖。于是,骑兵指挥官陷入了懵逼,进退失据,最终使法军输掉了整场战争。

极高而且极其不灵活的指挥方式,往往是导致骑兵惨败的罪魁祸首:

战场中有沼泽,指挥官战前没有发现,输

敌人设置了拒马,指挥官战前没有发现,输

敌人退往山后,指挥官战前没有预料到,输

突然出现镰枪手,指挥官战前没有预料到,输

几次著名的以步克骑的战役,比如郾城之战,克雷西战役,阿金库尔战役都是这样;在战场出现突发性因素的时候,骑兵军团低劣的指挥能力无法应对,要么维持原计划上去送死,要么新命令无法贯彻,大军乱成一锅粥。

第四,骑兵很容易导致军阀产生

我们来看看重骑兵装备的价值(公元8世纪,德国):

头盔--6索里达(金币) 盔甲--12索里达

剑和剑鞘--7索里达 护腿--6索里达

长矛及盾牌--2索里达 战马--12索里达

这就价值45索里达,一般骑士还需要一匹负重马,一匹骑乘马价格略低于战马,也就是说完整的骑士装备总价值高达60索里达,同时期一头健壮的公牛价格为2索里达,全套重骑兵装备能值30头牛。

另外,为保证重骑兵完整的发挥战斗力,重骑兵还需要一名助手,同时骑手还需从小进行专业训练,又是一笔巨大的支出,这种高昂的支出,国家往往都无法负担,会采取以土地代替俸禄的方法来减轻财政负担。

但这也就意味着军人掌握了财权,军队能够自给自足

毋庸置疑,军队自给自足=军阀


user avatar   tommaxmim-18 网友的相关建议: 
      

相对论啊。

简单点说就是谁的质量大,谁的能量就高,这里的能量高,近似等同于火力强。

按照军事理论,这里的相对论是特指在预设的作战层面和规模上,骑兵更加具备在战术战略上形成局部和全面优势的能力,实现二维图形上压倒优势。

套用十六字方针则:敌进我迂,敌驻我围,敌疲我分,敌退我冲。在动态中求优势,在优势中求决胜。


user avatar   victorguan-22 网友的相关建议: 
      

稍微多说两句。

其实华人在海外,尤其是欧美社会遇到的很大的一个问题是意识不到种族的重要性。近代以前,中国基本都是处于一个“国家=天下”的状态。这就导致了很多中国人在面对近现代以威斯特法伦体系为基准形成的“民族国家”没有形成一个明确概念,因而在欧美,尤其是在北美(USA/Canada)这种移民国家里生活的时候政治上十分受挫。

不管你承认也好,否认也罢,一个人在美国的社会认定更多地来自于一个人的种族(race)而非阶级(class).以我们最关心的教育为例:大学录取会很大程度上根据你的种族来决定录取标准,而不是社会阶层,更不是政治倾向。不管家境如何,只要你是亚裔,那么你就有大概率碰到录取标准的歧视问题。

在这个前提下,任何一个有智商的人都能够看出来:在美国这个大背景下,在争取自身(个人/族群)权益的过程中,种族的优先级是排在最前面的,其次才是政治倾向和意识形态。因为大多数情况下你在填表的时候,不会让你选你是conservative还是liberal,只会让你选你是“white",“Asian”还是“Hispanic”. 而事实上,只要一个族群能够意识到美国社会种族优先的前提下,内部的政治光谱不仅不是问题,反而是优势,一个很好的例子就是犹太人。

犹太人在美国有多成功想必不用多说。但是犹太人并没有把自己局限在左翼或者右翼,而是通过在不同政治光谱上的发展,成功的让自己的种族在美国取得优势。说右翼,犹太人里面的一大票银行家企业家大家也有所耳闻;说左翼,犹太人中的囧叔,主持界传奇larry king,喜欢谈笑风生的华莱士等等都是业界传奇。这样他们右手掌控了经济和政治力量,左手掌控了舆论和传媒的力量,最终让族群取得成功。可见,以族群利益为先,则族内各个政见派系均受益;以政见利益为先,则族群分崩离析。

反观以叫兽为首的旧华“精英社会活动家“是怎么做的呢?不仅不去积极组织和联络真正能起到作用的政治基本盘(一个越来越壮大的华人群体),反而主动地去做出例如:损害自己族群的利益以换取一小撮外部政治利益(SCA5),试图不断的分裂族群内部力量(亚裔内部细分法案)等等赤裸裸乃至荒唐可笑的背叛种族利益的行为。这种叫兽,如果不是脑子进了水,那就只能是因为政治觉悟和政治水平实在太差,吃枣药丸


----------------------------


断脊之犬,狺狺狂吠。 一开始看到这篇文章我特别震惊,不单单是文章内容,更重要的作者身份:美国百人会会长及首个法学院院长?这样的人竟然说出如此粗鄙之语?不过回想一下,这倒是解决了我一直以来的疑问。

作为一个在美国各个领域都有杰出贡献的种族,作为一个平均收入和学历都远超平均线的种族,作为一个贡献了马友友,关颖珊,刘玉玲等杰出人才的种族,为什么美国华人的政治地位如此的低下?为什么华人的权益总是受到系统性的侵害和歧视?最重要的是,为什么华人,尤其是旧华人及其后代的自我认同和民族荣誉感低到令人发指?现在看来,这些旧华人中的“精英”“社会活动家”政治水准低到不堪占了很大一部分原因

其实在美国待过一段时间的人都明白,各个族群之间有竞争,有合作,也有斗争。但得到尊敬的条件只有一个:拥有力量。这个力量可以是经济力量,可以是知识力量,当然也可以是政治力量。所以这次大选华人主动出击,参与助选的行为我是非常认同的:重要的不是你站在哪一条队,而是展现能够左右选战结果的政治力量,这才是华人赖以发展的基础。相反,任何一种任凭意识形态洗脑而站队的行为都是政治水准低下的弱智行径。

其实稍微看了看叫兽的个人经历,未免有些可怜他。作为一个数次试图否认和摆脱自己华人身份的“社会活动家”,他的“习得性无助”十有八九也是在成长的过程中一步一步建立起来的。在中国崛起,新华人一步步向前的大背景下,他就像一头曾经被锁链拴住的幼象,完全没有意识到力量的对比总是会转化的,而华人政治家真正的基本盘只有自己。在这种情况下,旧华人的社会认知,一种貌似平等实则歧视的社会认知,只会进一步地被抛弃,最终由新华人引领实现真正的社会平等。旧华人畏畏缩缩的活了一百多年,却连美国这个国家的一点基本精神都没有学到,而这些分明写的很清楚:The land of the free and the home of the brave.

毕竟,大清都亡了,也请你们这些遗老遗少们滚回历史的尘埃里吧。 -------------------

原答案

这个所谓教授才真是把“歧视”二字阐释的淋漓尽致。


user avatar   chi-bang-luan-du 网友的相关建议: 
      

任何一样产品,如果沒有人用,那么只可能是一个原因——

它不好用。

绝对不可能是其他的原因。什么垄断啊,什么用户懒惰啊,这些原因都是不存在的。

7-Zip也是如此。

至于什么「7-ZIP比winRAR在多个方面优秀」这种说法,只是7-Zip往自己脸上贴金而已。

举个栗子,这是我公司的一个文件夹:

我就不说正宗的7-zip软件了,那玩意儿跟winRAR根本沒法比。我说说最近比较火的bandizip,这个软件也支持7z格式。

用bandizip压缩一下,选择zip格式,耗时4秒。

换7z格式压缩,耗时20秒。

zip格式压缩包的大小是79.9M,7z格式压缩包的大小是76.9M。7z格式只比zip格式小3%,但是压缩耗时多了4倍。这种情况下,7z的优势何在?

当然,我们可以修改参数。我把压缩级別调成快速压缩,再用7z格式压缩一遍,结果如下:

耗时8秒,压缩後的文件大小变成了79.8M。

同样的文件,我用winRAR,标准压缩成rar文件,耗时也就是8秒。快速压缩成rar文件甚至能达到跟zip文件同样的4秒速度。

7z总是吹它的压缩率,其真正的原因是:它能吹的也就只有压缩率了。压缩率高3% ,或者高5%,代价是压缩解压速度慢一倍以上,这沒什么值得骄傲的。

下面是谷歌官方做的一个评测:

Deflate是zip使用的算法,Lzma是7z使用的算法。把Deflate:9和Lzma:1做比较:

7z的压缩率比zip高(3.847÷3.371-1)×100%=14%

zip的压缩速度比7z高(15.5÷10.2-1)×100%=52%

zip的解压缩速度比7z高(347.3÷70-1)×100%=396%

7z別说打败rar了,它连把zip按到地上摩擦都做不到。原文是这样说的:

表明了Zopfli,LZMA,LZHAM,和 bzip2在压缩和解压缩时占用CPU时间较长,不会直接代替deflate。

Lzma算法的速度是如此之慢,以至于很多人使用7z时都误以为自己的电脑中病毒了,因为它实在是太慢了。

看看这位,他下载了一个16GB大小的7z格式的压缩包花了10分钟,然後解压缩花了10个小时。

再来做个实验。

我们知道文字类的文件是最容易压缩的。我随便下了几篇网文,加起来一千多万字,分別压缩成zip、7z、rar格式做比较。其中zip和7z用的是好压5.9版,rar用的是WinRAR5.71版,全都采用默认配置。

好压压缩成zip格式耗时2秒,压缩速度14.4M/秒,压缩率39.9%。

好压压缩成7z格式耗时30秒,压缩速度1.2M/秒,压缩率25.6%。

WinRAR压缩成rar格式耗时4秒,压缩率26%。

三个文件的大小比较:

7z凭什么取代rar?


2019年9月26日更新:

本文的所有实验都是简单且可复现的。

上面我们已经以实验的方式说明了为什么不要使用7-Zip压缩的7z格式,下面我们继续以实验的方式说明为什么不要使用7-Zip压缩的zip格式。

这次我还是不用正宗的7-Zip,我用360压缩举例说明。

新建一个文档:

用360压缩制作成zip格式:

点「压缩包语言」,选择「繁体中文」,不出意料地乱码了:

可能有人知道这是因为zip格式不支持Unicode文件名。但是同一个文件,我用2345好压制作成zip格式,换成360压缩打开:

点「压缩包语言」,选择「繁体中文」,这次沒有乱码!

这说明,用2345好压制作的zip文件,跟用360压缩制作的zip文件,是不一样的,不会出现文件名乱码。

事实真相是:並不是zip格式不支持Unicode文件名,而是用7-Zip压缩制作的zip格式不支持Unicode文件名。请注意这其中的差別。

上面说的是360压缩,怎么又跑到7-Zip上面去了?这是因为国产的所有压缩软件,除了好压之外,全都是7-Zip加了个壳。所以7-Zip有的缺点,他们全都有

我刚试了下7-Zip目前最新的19.00版本,不出意外地发现它依然不支持Unicode文件名。而只要7-Zip不支持Unicode文件名,像360压缩这种7-Zip加壳软件也绝不可能支持Unicode文件名。

现阶段最好用的压缩软件还是好压和WinRAR。

为什么不推荐bandizip呢?因为我讨厌它的推广方式。比方说下面这个表:

这个表是假的。WinZip和WinRAR都支持Unicode文件名,都支持7z的分卷压缩文件,目前也都是免费软件,剩下的「快速拖曳」和「高速压缩」我不太清楚是什么,估计也不是什么重要的东西。总之这个软件的虚假宣传很严重。



2019年9月28日更新:

这种看法是错误的。

好压、WinRAR、WinZip、bandizip这四款压缩软件制作的zip文件彼此通用,也就是说他们都是标准zip格式。

这四款软件都使用Unicode文件名,把这四款软件制作的zip文件拿到韩国去,拿到日本去,拿到世界上任何一个地方去,都不会乱码。只有7-Zip以及360压缩这种7-Zip加壳软件才会有文件名乱码问题。

实际上,对于Zip格式来说,Unicode文件名是可选的。7-Zip选择不支持Unicode文件名是有它自己的想法,因为加入Unicode支持会导致压缩包变大,然後研發7-Zip的那帮人觉得压缩率更重要,所以他们不支持Unicode。

7-Zip官网说7-Zip创建的 zip 格式比大多数其它压缩软件创建的都小 2-10%。大家都用一样的zip格式,凭什么你就比我小?就是因为7-Zip放弃支持Unicode。

「Zip格式本身沒有定义Unicode文件名」,我还真不好说这句话是错的。实际上这句话的正确说法是「Zip格式本身沒有定义一定要用Unicode文件名」,zip格式可以使用Unicode,也可以不使用Unicode,选择权在压缩软件,WinZip和bandizip的Unicode支持就是可选的。

7-Zip不加入对Unicode的支持,把压缩包缩小2-10%,它只说後者不说前者,只说好事不说坏事,这就是宣传。


2019年9月28日更新:

评论区有人指出7-Zip支持Unicode,但是需要手动添加参数。我试了一下,是真的。看来7-Zip还是能用的,只是需要使用者拥有很强的专业知识,对普通用户不够友好。

评论区有人说7-Zip默认不支持Unicode是为了兼容老的程序。这裡我给大家看一段bandizip的帮助说明:

UTF-8是用于存储Unicode的标准字符编码方法,其被开发用于显示各种语言。
由于Unicode和UTF-8是在20世纪90年代之后开发的,因此ZIP格式的初始版本(在20世纪80年代制造)不支持UTF-8。 由于ZIP格式成为标准档案格式并且需要支持Unicode,因此,已经引入了几种方法来处理ZIP文件上的UTF-8字符串。
Bandizip支持其中两种;一种方法是将文件名转换为UTF-8,另一种方法是将额外的UTF-8文件名存储在额外的头字段中,同时将原始文件存储在MBCS中。
在Zip文件中使用Unicode文件名(UTF-8)
Bandizip将文件名存储在ZIP文件中,并将其转换为UTF-8。 它是由APPNOTE定义的标准文件名存储方法,但是一些压缩程序偶尔无法识别ZIP文件或错误处理它们将导致文件名损坏。
将Unicode文件名存储在Zip文件的额外头字段中(UTF-8)
Bandizip将附加UTF-8文件名存储在ZIP格式的额外头字段中,同时将原始文件存储在MBCS中。 此方法也由APPNOTE定义为“Info-ZIP Unicode Path Extra Field(ZIP信息U码路径额外字段)”。 因为它使用额外字段来存储UTF-8文件名,所以文件大小将比前者大几十字节。 但是,原始文件名存储在MBCS中,因此文件更安全,更兼容。
由于大多数压缩程序(如7zip,Winrar和Winzip)都支持此功能,因此可以防止文件名在使用不同系统语言的操作系统中被破坏。

Unicode filenames in ZIP format

简单点说就是zip支持Unicode有两种方式,第一种方式是直接把文件名从本地代码转换成UTF8存储在zip文件中,第二种方式是依然在zip文件中存储本地文件名代码,然後把本地文件名代码转换成UTF8存储在ZIP文件的额外头字段中。第一种方式有可能会出现兼容性问题,第二种方式因为存储的还是本地文件名代码,所以绝对不会出现兼容性问题,但是这样就相当于把文件名存了两次,所以文件会大一些。

大家猜猜,好压、WinRAR、WinZip,以及加了cu参数的7-Zip分別支持哪一种Unicode存储方式?

实测好压支持的是第一种。

上面我用好压制作了一个「新建文本文档.zip」,裡面内容就是一个名为「新建文本文档.txt」的空文档,我用notepad++打开是这个样子的:

一堆乱码,注意那个「金區板缓XXXXX.txt」其实就是「新建文本文档.txt」的乱码。

选择UTF8编码。

正确的文件名就出来了。

我再把这个名为「新建文本文档.txt」的空文档用WinRAR压缩成zip格式,用notepad++打开:

注意前面是正确的文件名「新建文本文档.txt」,後面是乱码。

选择UTF8编码。

前面变成乱码,後面显示正确的文件名「新建文本文档.txt」。

这个用WinRAR制作的文件比先前用好压制作的文件大了48个字节。

这就是第二种方式,实测WinZip用的也是这种方式。

至于7-Zip,它用的是跟好压一样的第一种方式。

我们理一下思路:

zip文件有三种方式,第一种支持Unicode兼容性一般,第二种支持Unicode兼容性好但体积最大,第三种不支持Unicode体积最小。

好压使用的是第一种方式,WinRAR和WinZip使用的是第二种方式。7-Zip默认第三种方式,加入cu参数後是第一种,不支持第二种。

实际上像WinRAR和WinZip这种国际性大公司才是最在乎兼容性的,自由软件开發者我感觉都不太在乎兼容性。


9月30日更新:

说说bandizip这个软件。

安装之後右键菜单会多出来一个「新建文件夹」选项。

然後是传说中的压缩包预览功能。

發现问题所在了吗?bandizip佔的位置太大了,好压和WinRAR都只佔了四五行,bandizip一个软件就佔了十几行,挤得右键菜单都显示不全了。

按道理说,如果我想知道压缩包裡有什么,直接双击打开不就可以了吗?所以我给压缩包预览功能的评价是负分。

还有那个自动解压功能。压缩包裡面有个A文件夹,A文件夹裡面有个B文件,换別的软件解压出来都是A文件夹裡面有个B文件,而bandizip解压出来直接就是B文件,我还得自己建个文件夹把B文件放进去。

总之,许多bandizip吹爆的特性,反而给我造成了困扰。而去掉这些特性,bandizip就不剩什么了。

而且我认为bandizip的界面很「简陋」,这裡说明一下,我所谓的「简陋」意思可能和別人不太一样。

来对比一下。这是bandizip的压缩界面:

这是好压的压缩界面:

bandizip只有一个压缩时间。好压则是压缩时间、压缩速度、压缩率、文件个数什么都有。这就是我所谓的「简陋」,即功能上的「简陋」。

再来看看好压的配置界面,可以自定义压缩算法、字典大小、单词大小。以这个配置压缩解压需要多少内存直接给你标出来。7-Zip也不过如此了吧。

还可以编辑过滤列表,对不同後缀名的文件采用不同的压缩配置。

这就是为什么我宁愿使用有广告的好压,也不用干净清洁小巧的bandizip。


2019年10月1日更新:

刚才测试了一下Win7自带的explorer.exe对zip文件的支持情况,结论如下。

explorer压缩zip文件不支持Unicode,但是可以打开Unicode文件名的zip文件,实测好压和WinRAR压缩的zip文件都可以打开。

explorer只支持deflate和deflate64两种压缩算法,不支持其他压缩算法。

2019年10月2日更新:

感觉好像歪楼了,题目问的是为什么RAR 比 7Z 更流行。我总结一下,7-Zip相比于RAR至少有三大缺点:

⒈界面简陋

⒉压缩耗时高,佔用内存多(在有的人眼中这是优势)

⒊稳定性差,压缩包容易损坏

第三点不是我说的,我给大家摘一段bandizip对7z格式的评价(链接):

为了实现更高的压缩比,7z使用了包括报头压缩在内的各种方式。
但是,由于这些功能,当压缩文件受到轻微损坏时,几乎不可能恢复它。
因此,在以7z格式备份重要文件时,请注意不要损坏它们。
您可以在7Z网站上找到有关如何恢复损坏的7Z文件的信息,但即使对专家来说,完成恢复也是极其困难的。

有人说这是商业软件的刻意抹黑,我给大家转一段开源界大佬对7z的评价(链接):

The [LZMA2 format] contains an unrestricted mix of LZMA packets and uncompressed data packets. Each packet starts with a header that is not protected by any check sequence in spite of containing the type and size of the following data. Therefore, every bit flip in a LZMA2 header causes either a framing error or a desynchronization of the decoder. In any case it is usually not possible to decode the remaining data in the block or even to know what failed. Compare this with [Deflate] which at least does protect the length field of its non-compressed blocks. (Deflate's compressed blocks do not have a length field).

这段文字是什么意思呢?我简单解释一下,LZMA2是7z的默认压缩算法,用这种算法压缩文件会产生这么一种情况:

假如一个普通文件内容是「ABCDEFG」,然後它第二个字节损坏了,我们看到的就是「A?CDEFG」。但如果这是一个使用了LZMA2算法的7z压缩包,我们看到的就是「A??????」。

Therefore, every bit flip in a LZMA2 header causes either a framing error or a desynchronization of the decoder. In any case it is usually not possible to decode the remaining data in the block or even to know what failed.翻译:因此,在LZMA2报头中的每个位翻转都会引起解码器的帧错误或者同步失调。在所有情况下,通常都不可能解码块中的剩余数据,甚至都不知道哪裡错了

最後,这位大佬给出的建议是:不要用LZMA2算法储存重要文件。

也就是说,如果你坚持使用7z格式,那么你就祈祷吧,祈祷压缩包裡一个字节错误都不要有。因为只要出现一个字节错误,整个压缩包就废了。

所以,即使不考虑时间因素,rar相比于7z仍然是有优势的。


2019年10月4日更新:

今天评论区还有人对我说:你说的不对,zip格式不支持Unicode。唉……

说个可能会违反大家常识的事:一般人可能会认为7-Zip这种免费软件靠的是口碑,WinRAR这种商业软件靠的是宣传。

错!

真实的情况是:WinRAR靠的是口碑,而7-Zip靠的是宣传

我印象中从来沒见过WinRAR做广告宣传过它自己。WinRAR崛起靠的是它良好的口碑带动人民群众用脚投它的票。

7-Zip並不是缺乏宣传推广,而是它的宣传推广已经过头了。过头到什么程度?明明是7-Zip自己的zip格式不支持Unicode,现在好多人以为全世界的zip格式都不支持Unicode。7-Zip的bug已经快变成feature了

我试过很多压缩软件,只有7-Zip的zip格式默认不支持Unicode。其他不支持Unicode的软件,我都能在他们的安装目录裡找到7z.dll,这些软件都是直接把7-Zip的东西拿过来用,都不带改的。

有人说什么国外都用7z,于是就有了这么一个有趣的问题:(为什么 Linux 要用 tar.gz,很少用 7Z 或 ZIP)?作为一个自由软件,7z连它的大本营linux都沒有搞定

还有人说什么国外注重版权,都不用rar。我给大家看一张英文维基百科的截图:

英文维基百科对rar的评价是:second in popularity to .zip files.人家对7z可沒有这么高的评价。

类似的还有bandizip,有人做宣传说bandizip支持Unicode,而WinZip和WinRAR都不支持?

我發现,像7-Zip和bandizip这种免费软件,其官网还是比较靠谱的,基本沒什么虚假宣传。但是其免费的特征,会招来一群人帮他们做免费宣传。然後这群人中的大部分啥都不懂,但是想象力很丰富,会自动脑补出一些並不存在的东西。比方说他们看到7-Zip宣传自己的7z格式支持Unicode,就会自动脑补成zip格式不支持Unicode;他们看到bandizip宣传自己的zip格式支持Unicode,就会自动脑补成別家的zip格式不支持Unicode。明明bandizip的大标题是「ZIP格式的Unicode文件名」,正文说的是「我们和WinZip、WinRAR一样都支持Unicode」,这些人连点进去看一眼正文的想法都沒有。

然後这些人对他们宣传的东西有一种谜之自信。有人说7z格式易损坏,马上就会有人跳出来说你有什么证据?沒有人会把自己的缺点放在官网上宣传,然後这群人的逻辑是:7z不说它有这个缺点,那么它就沒有这个缺点,你这样造谣污蔑肯定是收了钱的。

为什么我说7z易损坏的时候要引用那么多资料呢?因为我害怕被人喷。


10月6日更新:

我记得我已经把这个评论踩下去了。怎么又被顶上来了?

这个评论存在事实错误。因为我用的都是默认配置,7z的默认配置是16M字典大小:

WinRAR的默认配置是是32M字典大小:

居然还有43个赞,可见7z的虚假宣传多么严重了。

市场永不失效。——这是我学了经济学之後最大的收获。

一提起市场失效,大部分都会想到德沃夏克键盘和QWERTY键盘的故事。我学经济学之前也认为这是一个市场失效的典型案例。但是後来我知道了三点我以前不知道的东西:

⒈德沃夏克键盘是有专利的,每一个使用德沃夏克键盘的人都要给德沃夏克交专利费,而QWERTY键盘免费。

⒉所有德沃夏克键盘优于QWERTY键盘的实验,都是德沃夏克自己搞的,他是在推销自己的产品,所以其实验的真实性值得怀疑。

⒊德沃夏克键盘並不完美,比如说现代英语中I的使用频率远高于U,但是德沃夏克键盘把U放在了比I更顺手的位置上。

我觉得第一点就能把这个问题下的大多数人劝退了。

有人说什么WinRAR的流行靠的是盗版软件,装机的人都装WinRAR,用户沒有选择权。

问题来了:为什么装机的人都装WinRAR呢?还不是因为它好用!

这就好比说Windows为什么流行?因为国内电脑都预装盗版Windows,用户沒有选择权。

我才不会告诉你们当年我的笔记本电脑上预装的就是Linux,我回家第一件事就是把Linux格了,换个盗版Windows装上去。

如果装机的人选择7-Zip而不是WinRAR,最大的可能不是用户从WinRAR迁移到7-Zip,而是他这个电脑卖不出去了。

目前的现状是:Windows平台上最流行的压缩格式是zip,其次是rar(rar是第二流行的压缩格式这种观点是英文维基百科说的)。

Linux平台上最流行的压缩格式是tar.gz,其次是tar.bz2。

zip用的是deflate算法,tar.gz用的也是deflate算法,其实就相当于换了个後缀名。tar.bz2用的是bzip2算法,rar用的是私有压缩算法。

这三种压缩格式中,综合考虑压缩率、压缩时间、稳定性等等因素,rar是最好的,但是它收费,所以屈居老二,zip排第一,这很合理,很符合市场规律。

现在好多人吹捧7z的同时都要把zip踩一下,这真是令人无语的操作。很多人都不知道,其实zip也是开源格式。现在压缩界的龙头老大,是被一个开源格式牢牢掌控着的,这个格式就是zip。我平时压东西用的也是zip。

7z三大缺点,一丑二慢三不稳定。按理说第一个缺点是最不重要的,为什么人们常常提起的反而是第一个缺点呢?

这是因为「丑」这个缺点,是一眼就能够看见的,不容抵赖。後两个缺点不是长年累月地使用是不会發现的。

我以前也用7-Zip,7-Zip的zip格式默认不支持Unicode文件名这种坑点我是亲身实践發现的。像WinRAR这种商业软件,人人得而诛之,它一旦出现什么问题就会被人挑出来指着鼻子骂;而7-Zip这种免费软件,推销的人都会或多或少地美化它。WinRAR名面上有很多坑,但是我们知道它就只有这么多坑,而7-Zip看似完美的表象下你根本不知道它有多少坑。


2019年10月9日更新:

自v7.0开始,Bandizip会发布3种版本

标准版:为大众提供的免费的版本
专业版:为专业用户提供的付费版本
企业版:为企业用户提供的付费版本

自7.0开始,Bandizip将会在软件中加入广告,强制更新,並且不再提供离线安装包。希望广大Bandizip爱好者届时能继续支持这个软件,呵呵。


2019年11月3日更新:

有人说字典大小不同不能比较,那我来一个字典大小相同的比较实验:

zip用32K字典,rar和7z都用1M字典,使用的测试材料是中文小说,结论如下。

压缩耗时比:

zip标准:RAR标准:7z快速:7z标准=1:2.5:4.8:9

最终文件大小的比例是:

zip标准:RAR标准:7z快速:7z标准=120%:1:107%:93%

bandizip很鸡贼,他的「正常压缩」使用的是7-Zip「快速压缩」的参数,他的「最大压缩」使用的是7-Zip「标准压缩」的参数。所以使用bandizip压7z的时候,我们会發现他的压缩速度比较快,但是压缩比不高。


2021年10月10日更新:

「7-Zip 现在会为 UTF-8 编码的文件名写入额外的字段至 zip 压缩包中。

这可以让 zip 压缩包在不同系统中提取时能得到正确的文件名。」

7-Zip终于加入Unicode支持了,版本号是21.02 alpha,更新时间是2021年5月6日。

标准zip加入Unicode文件名的时间是2006年。时隔15年之後,7-zip终于支持这个标准了,真是不容易。

另外bandizip所谓的「高速压缩」实测是假的,宣传口径而已。




  

相关话题

  弓骑兵与手枪骑兵对抗如何(弓骑兵为满清皇太极时代的,手枪骑兵为同时代欧洲平均水平)? 
  明朝的抗倭援朝,之所以能以4万军取胜,主要是因为骑兵还是火器? 
  古代战争中,骑兵对步兵的优势究竟从何而来? 
  马镫到底对骑兵影响有多大? 
  关宁铁骑是否有能力在野战中击败八旗军? 
  中世纪欧洲的骑士到底有多强的战斗力? 
  如果古代守城用机枪,多少人能攻打进来? 
  司马懿讨伐辽东公孙渊,公孙渊兵多,为何还是输了? 
  如何评价章邯? 
  假如你是古代的一位皇帝,反叛军已兵临城下,并且敌军有20万兵力,自己只有五万禁卫军,你会怎么办? 

前一个讨论
长矛兵克制骑兵算是游戏设定吗?现实中如何?
下一个讨论
面对edg的嘉文五世,你有什么想说的?





© 2024-09-19 - tinynew.org. All Rights Reserved.
© 2024-09-19 - tinynew.org. 保留所有权利