解压⽂件出错解决⽅法(invalidcompresseddata--
formatviolated)
解压缩出现这个报错:
1.考虑是否传输过程出错,重新传输试试。
2.使⽤传输⼯具时,选择⼆进制试试。
3.使⽤传输⼯具时,选择ASCII试试。
解压缩命令:
gzip  -d filename
gunzip filename
今天要在特殊的情况下传⽂件,⽤ftp命令传的,但是每次解压到时候都报错,搞得我⼀脸蒙蔽。迫不得已,去百度,才知道传输⽂件的时候是默认按照netascii的格式进⾏传输的,没有按照⼆进制⽂件的形式传输。在传输之前,使⽤命令ftp> bin指定传输格式可以解决。天天这样踩坑,踩过的坑和⾛过的路差不
多。
FTP中传输模式:BIN与ASC的差别
20110824,相关验证性实验已经做过了。采⽤ascii模式下载下来的图⽚确实⽆法正常打开,但是binary的就正常。linux的redhat的 vsftp默认是binary,ascii默认关闭,其余服务器可能要在下载或者上传前注意检查设置,如果可以请设置为binary⽅式传输,以免发现数据被更改,造成⽆法使⽤的情况。
====================================================================
FTP可⽤多种格式传输⽂件,通常由系统决定,⼤多数系统(包括UNIX系统)只有两种模式:⽂本模式和⼆进制模式。⽂本传输器使⽤ASCII字符,并由回车键和换⾏符分开,⽽⼆进制不⽤转换或格式化就可传字符,⼆进制模式⽐⽂本模式更快,并且可以传输所有ASCII值,所以系统管理员⼀般将FTP设置成⼆进制模式。
  ⼀般来说:如果你⽤错误的模式传输你的图⽚,你将会⽆法看到图⽚,看到的会是乱码。如果你⽤错误模式上传CGI脚本,那么就将⽆法运⾏你的脚本,会看到类似Server 500 Error的出错信息。
  所以你必须使⽤正确的模式,图⽚和执⾏⽂件必须⽤BINARY模式,CGI脚本和普通HTML⽂件⽤AS
CII模式上传.
gzip是什么文件夹
  ASCII 和BINARY模式区别:
  ⽤HTML 和⽂本编写的⽂件必须⽤ASCII模式上传,⽤BINARY模式上传会破坏⽂件,导致⽂件执⾏出错。
  BINARY模式⽤来传送可执⾏⽂件,压缩⽂件,和图⽚⽂件。
  如果你⽤ASCII模式传,会显⽰⼀堆乱码,你必须重新⽤BINARY模式传。
  对于第⼆种情况,是因为有很多ftp服务器和客户端软件能⾃动识别⽂件类型,并采取相应的传输⽅式。
  ftp是应⽤层协议,和具体操作系统⽆关 .
  ASCII 模式和BINARY模式的区别是回车换⾏的处理,binary模式不对数据进⾏任何处理,asci模式将回车换⾏转换为本机的回车字符,⽐如Unix下是\n,Windows下是\r\n,Mac下是\r
  ascii模式下会转换⽂件
  不能说是不同系统对回车换⾏解释不同
  ⽽是不同的系统有不同的⾏结束符
  unix系统下⾏结束符是⼀个字节,即⼗六进制的0A
  ⽽ms的系统是两个字节,即⼗六进制的0D0A
  所以当你⽤ascii⽅式从unix的ftp server下载⽂件时(不管是⼆进制或者⽂本⽂件),每检测到⼀个字节是0A,就会⾃动插⼊⼀个0D,所以如果你的⽂件是⼆进制⽂件⽐如可执⾏⽂件、压缩包什么的,就肯定不能⽤了。如果你的⽂件就是unix下的⽂本⽂件,你⽤ ascii模式是正确的,要是误⽤了binary模式,你在windows上看这个⽂件是没有换⾏的,⾥⾯是⼀个个的⿊⽅块。
  ⼀般来说,我们最好都⽤binary⽅式,这样可以保证不出错。如果有⽂本格式转换的问题,即unix格式的⽂本和dos格式的⽂本之间的转换,有很多⼯具可以做的,不要在ftp传输的时候冒险,尤其是你如果对这些东西不是⾮常清楚的话。可以使⽤MIME,把所有的字符,转换成0~128之间的字符,然后传送,在接受⽅再将接收到的字符MIME反向转换。通常我们发送邮件,就是使⽤这样的字符转换⽅式
  ------------------------------------------------------------------
  补充:⽂本模式和⼆进制模式传⽂本⽂件的具体区别可以通过在linux下使⽤cat -A ⽂件名看到两者的区别,当然前提是在windows下上传的⽂本为dos格式,这个可以⽤⾼级的⽂本编辑器看如ultraedit等。两者的区别是⼆进制模式上传的⽂本⽐⽂本模式多⼀个^M符号,这个就是windows下dos格式的/r回车符号,也就是上⾯提到的⼗六进制的0D,在vi下使⽤全局替换:%s/^M//g[^M使⽤Ctrl+V+M⽽不是直接输⼊^M]去掉所有的回车符或者使⽤dos2unix file进⾏转换,这样保存后或者⽣成后的⽂件就和⽂本模式上传的⽂件⼀样了。。。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。