html都是纯文本文件吗,关于“什么是纯文本文件”的思考

a4c26d1e5885305701be709a3d33442f.png

关于“什么是纯文本文件”的思考

(2007-07-10 21:35:56)

分类:

转载

在支持中文环境的计算机中,

1. 什么是纯文本文件?

2. 什么是文本文件?

3.

文本文件和DOC文件(WORD的缺省格式文件)以及HTML文件有何区别?

4. DOC文件与HTML文件有什么相同之处和不同之处?

问题1:

首先,90%的人没有真正理解ASCII码表真正的作用和含义。ASCII码是全世界计算机上最基本的编码表,它是7个bit的编码表,用一个字节表示的话,最高位必须为另。其本意是用二进制码代表26个大小写的字符,以及数字符号0-9的字符,还有一些标点符号等。这些符号用于记录你的键盘输入的符号,如果将这些符号送显示的话,显示器硬件会根据你的ASCII码显示出相应的符号。另外,在ASCII码中,还定义了几个基本的控制符号,如回车、换行等。这些控制符号送到显示器的话,不会显示什么字符了,而是控制显示的方式,如将光标回到最左面并下移一行并下(回车换行)。

从软件角度出发,组成任何一个文件内容的最小单元为字节(从硬件角度,有时需把BIT作为最小单元)。因此,不管什么文件,只要该文件内容的每个字节都是ASCII码,或者说,只要构成文件内容的每一个字节的高位都是另的话,这个文件就是纯文本文件!!

由于所有的计算机都采用ASCII码表,所以纯文本文件的内容可以在任何一台计算机上显示(除了其中的控制代码),不需要特殊的“游览器”之类的软件。

====================================

问题2:

ASCII表只是对英文字符进行了编码。对于不同语言的国家为了能在计算机上显示自己国家的文字,制定了不同的编码。但所有的编码必须兼容ASCII码。中文系统中采用的编码典型为GB2312(大陆),由于需要和ASCII兼容,所以中文的编码采用2个字节的区位编码。不管你采用那种中文输入方式,最终在文件中记录的是该中文字的机内码(不是字型码),占2个字节(实际上,所谓一个中文字为2个英文字符的实质再此!)高位均为1。至于一个2字节的中文编码怎么能在屏幕上显示为通常是32字节构成的中文字型,请自己学习吧。弄清楚了你就知道为什么有人要找12*12点阵的字库,它用在何处。这些基础和知识,对与设计要能显示中文的嵌入式系统都是非常必要的。

回到文件本身,我们给出文本文件的定义(中文环境下)。对于任何一个文件,其内容全部是由GB2312编码构成的就是文本文件。文本文件与纯文本文件的差别是,其有的字节的高位是1的。文本文件的内容不是在所有的计算机上都能显示的。要能正确的显示,该计算机必须运行有支持GB2312编码系统。在中文文本文件中,一个字节的高位为0,则按ASCII码处理。而一旦出现了一个字节的高位为1,那么其后面的一个字节的高位也必须为1,而且两个字节必须是对应的GB2312中的机内码。因此,在中文文本文件中,高位为1的字节必须是成双出现,而且必须构成为对应于GB2312中的机内码。

现在,一般都将纯文本文件和文本文件当作一回事,其实他们之间还是有区别的。

===========================================================

问题3和4:(以下以纯英文系统环境为例)

采用最普通和简单的方式显示纯文本文件的话(如使用WINDOWS的记事本)所显示的字符是单一的,没有大小、颜色、字体等变化,因为文件内容除了个别控制符号都是可显示的字符。

人们开始设想,将文本文件的内容分成2个部分:一部分是需要在屏幕上显示的字符信息;而另一部分不是需要显示的信息,而是对需要显示信息的显示方法的定义,如用什么样的颜色、大小、字型等等。那么怎样区别这两部分的内容呢?有两种不同的方法。

一种是类似与HTML文件的方法。其文件内容的每一个字节还是ASCII码,但其规定在<>中的内容,包括<>这两个符号是不需要显示的,作为对显示的定义(如大小、字型、颜色等当然还有其它更多的作用)。然而这样的定义对于普通的类似记事本这样的软件工具是不能处理的,必须使用专用的软件去打开和处理,才能达到所预定的显示效果。因此对于HTML文件来讲,要看到预定的结果,就需要在专用软件“游览器”中打开。该游览器知道文件中那些内容需要显示,而且以什么方式显示。记事本不是专用的“游览器”,它只是简单的纯文本文件“游览器”,所以它把HTML的所有内容都显示出来。

HTML本质上是纯文本文件,但它是根据HTML规范编写的纯文本文件。这种文件要得到它所设计的显示效果,需要在能解析HEML标记的专用软件“游览器”中打开。

DOC文件不是纯文本文件,因为该文件的内容中有许多单个字符高位为1,不是ASCII码表中表示的字符。在DOC文件中的这些高位字符为1的字符就是第二种方法,它不是要显示的信息,而是作为一种特殊的控制符或描述符,是对显示的内容进行显示方式的定义,以及一些其它功能的定义。当然微软没有公布这些特殊的定义,我们不了解具体的形式。但从某种意义上讲,DOC文件与HEML文件有相同之处,即文件本身的内容分成2部分,一部分是需要显示信息字符,而一部分是特殊功能的标记和控制符等。不同的是HTML的这些特殊内容是用的形式描述,在记事本中可以看到描述的定义;而DOC文件中的这些描述使用的是非ASCII码字符(包括一些处在非ASCII码之间的ASCII字符),它们在记事本中不能看到。

另一个HEML和DOC文件的类似点是,要达到文件所设定的显示效果,必须在相应的,能够解析和处理这些特殊内容的“游览器”中打开。DOC文件的“游览器”就是WORD系统。WORD知道DOC文件中那些特殊功能标记和控制符,它不是去显示它们,而是根据它们的功能可定义去显示被指定的字符信息。

由于DOC文件的格式没有公开,但它的基本结构我们是可以通过比对和分析了解的。如果谁使用过最早在DOS系统中使用的WPS文字处理软件的话,就会更加容易理解DOC文件的构成了。

lakers :http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=752335

分享:

a4c26d1e5885305701be709a3d33442f.png喜欢

0

a4c26d1e5885305701be709a3d33442f.png赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

评论并转载此博文

a4c26d1e5885305701be709a3d33442f.png

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值