ftp命令中binary mode与ascii mode的区别是怎样的

技术ftp命令中binary mode与ascii mode的区别是怎样的这篇文章给大家介绍ftp命令中binary mode与ascii mode的区别是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能

本文介绍了ftp命令中二进制模式和ascii模式的区别,内容非常详细。感兴趣的朋友可以参考一下,希望对你有所帮助。

FTP可以传输各种格式的文件,通常由系统决定。大多数系统(包括UNIX系统)只有两种模式:文本模式和二进制模式。文本传输器使用ASCII字符,由回车键和换行符分隔,而二进制可以传输字符,无需转换或格式化,二进制模式比文本模式更快,可以传输所有ASCII值,所以系统管理员一般将FTP设置成二进制模式.

一般来说,如果你以错误的模式传输你的图片,你将看不到图片,但你会看到乱码。如果您在错误模式下上传CGI脚本,您将无法运行您的脚本,并且您将看到类似于服务器500错误的错误消息。

所以你必须使用正确的模式。图片和可执行文件必须以BINARY模式上传,CGI脚本和普通HTML文件必须以ASCII模式上传。

ASCII 和BINARY模式区别:

用HTML和文本编写的文件必须以ASCII模式上传。以BINARY模式上传会破坏文件并导致文件执行错误。

BINARY模式用于传输可执行文件、压缩文件和图片文件。

如果以ASCII模式发送,会显示一堆随机码,必须再次以BINARY模式发送。

在第二种情况下,有许多ftp服务器和客户端软件可以自动识别文件类型并采用相应的传输方法。

Ftp是应用层协议,与具体操作系统无关。

asciI模式和BINARY模式的区别在于回车和换行的处理。二进制模式不处理任何数据。ASCI模式将回车符和换行符转换成本机的回车符,如Unix下的\n,\r\n下的\ n,Windows下的\r \ n和Mac下的\ r \ n。

ascii模式下会转换文件

不能说不同的系统对回车、换行符有不同的解释。

但是不同的系统有不同的行结束符.

Unix系统下行终结符是一个字节,也就是十六进制的0A。

ms的系统是两个字节,也就是十六进制的0D0A。

  所以当你用ascii方式从unix的ftp server下载文件时(不管是二进制或者文本文件),每检测到一个字节是0A,就会自动插入一个0D,所以如果你的文件是二进制文件比如可执行文件、压缩包什么的,就肯定不能用了。如果你的文件就是unix下的文本文件,你用 ascii模式是正确的,要是误用了binary模式,你在windows上看这个文件是没有换行的,里面是一个个的黑方块。

一般来说,我们最好都使用二进制方法,以确保不出错。如果文本格式转换有问题,即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文件进行转换,以便保存或生成的文件与以文本模式上传的文件相同。

我希望在这里分享ftp命令中二进制模式和ascii模式的区别。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/107015.html

(0)

相关推荐

  • 产品销售明细表,如何用电子表格做销售记录单

    技术产品销售明细表,如何用电子表格做销售记录单1、首先产品销售明细表,新建并打开一个Excel表格,如图所示,输入销售清单的标题和正文。并把标题“商品销售明细清单”字体设为宋体,字号20,所在单元格合并居中。正文的文字居

    生活 2021年10月20日
  • Hibernate检索策略是什么

    技术Hibernate检索策略是什么本篇内容介绍了“Hibernate检索策略是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够

    攻略 2021年12月4日
  • centos7 安装包安装mysql8.0.18 rpm-bundle

    技术centos7 安装包安装mysql8.0.18 rpm-bundle centos7 安装包安装mysql8.0.18 rpm-bundle一、资源地址
    下载地址https://dev.mysql

    礼包 2021年11月4日
  • C语言函数分类自定义参数及调用方法是什么

    技术C语言函数分类自定义参数及调用方法是什么本篇内容主要讲解“C语言函数分类自定义参数及调用方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言函数分类自定义参数及

    攻略 2021年11月24日
  • 理解Java的接口和抽象类

    技术理解Java的接口和抽象类 理解Java的接口和抽象类深入理解Java的接口和抽象类对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两

    礼包 2021年12月23日
  • JavaScript对象访问器有哪些

    技术JavaScript对象访问器有哪些本篇内容主要讲解“JavaScript对象访问器有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript对象访问器有哪

    攻略 2021年11月20日