ASCII与Unicode 学习

建立了一个文本文件内容为空,分别另存为ANSI 编码,Unicode编码, UTF-8 编码, 结果它们的大小和占用空间分别为:(2个字节,4kb),(0个字节,0kb),(3个字节,4kb)好玩,看看到底咋整的吧!于是把word文件也狂转换开始,玩玩

问题: word文件保存为 xml格式 怎么打开?双击跳出保存对话框,保存后,再双击,再跳出保存对话框,我非打开不可,于是研究下如下格式:

rtf格式:RTF格式是由Microsoft创建的,同时它也是微软公司的WordPad采
用的标准格式.RTF是Rich Text Format的缩写,中文译名有丰富文本格式或富文本格式等 沟通WPS与Word的一种文件格式──RTF格式:写字板



现在大部分机器上装的字处理软件不是微软的word就是金山的wps,这两个软件默认的文件格式不一样,一个是.doc格式,一个是.wps格式,彼此之间不能实现很好的互访。现在很多人采用的方法就是把文件存为纯文本.txt格式,但是会因此丢失文件原有的编排格式,很可惜!


这里我们介绍另一种文件格式──.RTF格式,RTF是一种非常流行的文件结构,很多文字编辑器都支持它。一般的格式设置,比如字体和段落设置,页面设置等等信息都可以存在RTF格式中,它能在一定程度上实现word与wps文件之间的互访。下面以word为例,说明具体的操作方法如下:


1.单击“文件”菜单中的“另存为”选项,弹出的“另存为”对话框。


2.在“保存位置”输入框中选择文件保存的位置,在“文件名”输入框中输入文件名。


3.单击保存类型输入框中的下拉按钮,在弹出的列表中选择“RTF类型”。


4.单击“确定”按钮即可。


这样,当你用wps打开这个文件时,就会发现,基本的编排格式都还在,比如页眉、页脚、标题等,也许字体型号、表格等会有所变化,但稍稍加工就可以了。你不妨试一试!



另外,我发现写字板也可以打开doc文件和RTF文件,当然记事本不能。

xml格式:

xml到xsl转换:

mht格式:

html格式:


相对于ASCII,Unicode为双字节长的字符集,到目前已定义了世界上绝大多数文字的常用字,ASCII字符集是它的子集,即Unicode字符集兼容ASCII字符集。使用Unicode最大的好处是可以使应用程序方便地实现多语言支持,不再基于CODEPAGE。微软的IE 5.0、WINDOWS 2000,OFFICE 97以上版都是基于UICODE的。
关于使用UNICODE的问题:因WINDOWS 95、98 不支持UNICODE,WINDOWS NT、2000,完全支持,若要使基于UNICODE的应用程序在上述OS上运行,那是个较麻烦的问题,请参考微软经典书籍:<<DEVELOPING INTERNATIONAL SOFTWARE FOR WINDOWS 95 AND WINDOWS NT>> --- NADINE KANO

UNICODE每个字符占两个字节。
ASCII占一个。
从Win2K开始,操作系统所有的内部函数都是用UNICODE实现的。

Unicode简介

---- 由于在计算机应用领域中存在着几十种互不相同的字符集,当在使用不同字符集的计算机系统之间进行信息交换时,人们可能会得到一些莫名其妙的东西(那些经常上网,经常不得不在各种字符编码之间来回切换的人对此可能深有感触)。紊乱的字符编码给信息交换以及软件开发商等带来了极大的不便。人们急需一种得到大家认可的并且涵盖了全世界各种文字的字符集。显然,建立这样的一种字符集是十分困难的。不过,这方面的努力一直在进行,Unicode就是这种努力的结果之一。

---- 为了将成千上万的文字统一到同一个编码机制之下,在兼顾经济的原则下,不管是东方文字还是西方文字,在Unicode中一律用两个字节来表示。也就是说,Unicode是一种双字节编码机制的字符集,使用0-65535之间的双字节无符号整数对每个字符进行编码。这样,在Unicode字符集中,至少可以定义65536个不同的字符,足以应付目前绝大多数场合的需要。

---- 目前,常用的Unicode编码方式有两种:UTF-8以及UTF-16。

---- UTF-8 是一种不等幅的编码方式,UTF-8编码的字节长度取决于所要编码的字符在ISO 10646中的编码值。在UTF-8中,不同的字符,可能需要1-6个字节来进行编码。对于单字节的UTF-8编码,该字节的最高位为0,其余7位用来对字符进行编码(等同于ASCII码)。对于多字节的UTF-8编码,如果编码包含n个字节,那么第一个字节的前n位为1,第一个字节的第n+1位为0,该字节的剩余各位用来对字符进行编码。在第一个字节之后的所有的字节,都是最高两位为"10",其余6位用来对字符进行编码。

---- UTF-16也是Unicode的变形表示方式的一种。它的目的是维持双八位的编码方式,同时也用一些特殊的双八位来表示ISO 10646中非基本多文种平面(BMP)中的一些字符。这种用来表示非BMP字符的方法在Unicode中称作代理对机制。

---- 代理对的编码机制以及原先不需要代理对的六万三千多个基本 Unicode 码,合起来叫做UTF-16。也就是说UTF-16 基本上就是 Unicode双字节编码的实现,再加上一个应付未来扩充需要的编码机制。

---- UTF-16编码遵循下述原则:
对于字符编码值小于0x10000的字符,则直接把编码值转化为一个相等的16位整数。
对于字符编码值在0x10000到0x10FFFF之间的字符,将用一个0xD800到0xDBFF(代理高部)之间的16位数,后面紧跟一个0xDC00到0xDFFF(代理低部)之间的16位数来表示。
字符编码值大于0x10FFFF的字符将不能用UTF-16来表示。

Unicode文本文件和ASCII的区别
用程序写了一段unicode编码的文本写到文件中,用记事本打开一看文本是乱的,而且记事本将其认定是ASCII文本。而自己用记事本写了一段文字,保存为unicode文本却正常。 后来无意中发现,用记事本保存的一个unicode空文本文件是2个字节的,而ASCII的空文本文件是0字节的。于是用utrl edit打开了空的unicode文本文件发现,两个字节的内容是FFFE, 而unicode big endian是FEFF, 原来所有unicode文本文件都有一个两字节的文件头。而ASCII的文本文件是没有文件头的,所以unicode编码写成ASCII文件后是乱的。 于是我按照上面描述的,将文本文件前面加上了FFFE两个字节,后面再写自己的字符串,一个unicode的文本文件便成功地写好了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值