2006年04月27日

UTF8并不算是一种电脑编码,而是一种储存和传送的格式,如前所述,每个Unicode/UCS字符都以 2或4个bytes来储存,看看以下的比较:

  以"I am Chinese"为例
   用ANSI储存:12 Bytes
   用Unicode/UCS2储存:24 Bytes + 2 Bytes(header)
   用UCS4储存:48 Bytes + 4 Bytes(header)

  以"我是中国人"为例
   用ANSI储存:10 Bytes
   用Unicode/UCS2储存:10 Bytes + 2 Bytes(header)
   用UCS4储存:20 Bytes + 4 Bytes(header)

  由此可见直接以Unicode/UCS的原始形式来储存是一种极大的浪费,而且也不利于互联网的传输(中文稍为合算一点^_^)。

  有见及此,Unicode/UCS的压缩形式--UTF8出现了,套用官方网站的首句话『UTF-8 stands for Unicode Transformation Format-8. It is an octet (8-bit) lossless encoding of Unicode characters.』,由于UTF也适用于编码UCS,故亦可称为『UCS transformation formats (UTF)』

  UTF8是以8bits即1Bytes为编码的最基本单位,当然也可以有基于16bits和32bits的形式,分别称为UTF16和UTF32,但目前用得不多,而UTF8则被广泛应用在文件储存和网络传输中。


编码原理

先看这个模板:

UCS-4 range (hex.) UTF-8 octet sequence (binary)
0000 0000-0000 007F 0xxxxxxx
0000 0080-0000 07FF 110xxxxx 10xxxxxx
0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx

0001 0000-001F FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
0020 0000-03FF FFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
0400 0000-7FFF FFFF 1111110x 10xxxxxx … 10xxxxxx

编码步骤:
1) 首先确定需要多少个8bits(octets)
2) 按照上述模板填充每个octets的高位bits
3) 把字符的bits填充至x中,字符顺序:低位→高位,UTF8顺序:最后一个octet的最末位x→第一个octet最高位x
4) 解码的原理一样。

实例:(留意每个bit的颜色,粗体字为模板内容)

UCS-4 UTF-8
HEX BIN Bytes BIN HEX Bytes
0000 000A 00001010 4 00001010 0A 1
0000 0099 10011001 4 11000010 10011001 C2 99 2
0000 8D99 10001101 10011001 4 11101000 10110110 10011001 E8 B6 99 3

  不知大家看懂了没有,其实不懂也无所谓,反正又不用自己算,程式可以完全代劳。

  以UTF8格式储存的文件档首标识为EF BB BF。


效率

  从上述编码原理中得出的结论是:
   1.每个英文字母、数字所占的空间为1 Byte;
   2.泛欧语系、斯拉夫语字母占2 Bytes;
   3.汉字占3 Bytes。

  由此可见UTF8对英文来说是个非常诱人的方案,但对中文来说则不太合算,无论用ANSI还是 Unicode/UCS2来编码都只用2 Bytes,但用UTF8则需要3 Bytes。

  以下是一些统计资料,显示用UTF8来储存文件每个字符所需的平均字节:
   1.拉丁语系平均用1.1 Bytes;
   2.希腊文、俄文、阿拉伯文和希伯莱文平均用1.7 Bytes;
   3.其他大部份文字如中文、日文、韩文、Hindi(北印度语)用约3 Bytes;
   4.用超过4 Bytes的都是些非常少用的文字符号。

2006年04月19日

1. 县长讲完以后,主持人说:“咸菜请香肠酱瓜!”

2. 乡长说:“兔子们,虾米们,猪尾巴!不要酱瓜,咸菜太贵了!”

3. 乡长说:“不要酱瓜,我捡个狗屎让你们舔舔!”

4. 乡长说:“兔子们!今天的饭狗吃了!大家都是大王八!”

普通话翻译

(1) 现在请乡长讲话!

(2) 同志们,乡民们,注意吧!不要讲话,现在开会了!

(3) 不要讲话,我讲个故事让你们听听!

(4) 同志们!今天的饭够吃了!大家都使大腕吧!

2006年04月14日

这次延边队在郑州跟河南队碰头了。

河南队这场是第一个主场比赛,肯定非常重视。我们延边队可要加把劲儿啊!

这场比赛由郑州电视台二套进行直播。

我在网上搜了网上直播地址,效果不是很好,但总比没有好啊!

延边队,加油!

2006年04月06日

http://publishblog.blogdriver.com/blog/tb.b?diaryID=793127

谁让纸版图书利润那么高 让人买不起那
谁让电子版图书 得来不费功夫那
不过电子版图书 费的是你的眼睛 这个代价不小呀
我在网上申请了一个网络硬盘, 里面有一些软考教材及辅导书
如果 你还需要 什么图书 可以留言 我尽量满足  

方法一:

终于有了自己的免费FTP(不用担心被人删除或占为己有了),大家快去下载吧

地址:ftp://f769chzg991@769.cc

方法二:

另外,我有个邮箱,chzg99@56.com,容量2G,速度快,还可以共享,我把书也都放在共享文件夹了,不过你必须有自己的56.com信箱,才可以看我的共享文件夹。你也去申请吧,地址:
http://www.56.com/index.html

最近更新(11月9日)

2005软件设计师教程(终于做成了最新版的考试指定书)
陈省生先生在南大的讲课纪录
健康的钥匙在你自己手中
大道至简??软件工程实践者的思想

最近更新(9月18日)
DD省某银行扣税系统需求说明书
C案例分析-开发综合程序
软件工程??实践者的研究方法
软件工程知识体系指南
东软管理文档
together6.0学习指南
实战C++9个别具特色的实验
实战JAVA9个别具特色的实验
C++ 语言命令详解(第二版)

最近更新(7月21号): 

  UML参考手册.doc   2669KB    
  系统设计师(高级程序员)级考试辅导书.pdf  
  系统设计师(高级程序员)教程.pdf   10995KB  
  系统设计师(高级程序员)教程同步辅导.pdf   9851KB  
  TCP详解.doc   417KB  
  Word 排版??.rar   1899KB   
  人月神话.doc   33KB   
  软件水平软件设计师训练与测试系统.exe   24758KB   
  软件设计师训练与测试系统补丁.exe   2808KB   
  04年11月软件设计师上午试题详解.rar   372KB  
  UML基础案例应用.pdf   243KB  
  东软管理文档(软件工程).rar   2093KB     
  高级程序员考试试题分类精解(第二版).pdf   9633KB  
  算 法 设 计 题 集.zip   58KB    
  实用算法的分析与程序设计.pdf   10991KB 

   UML学习
   UML用户指南
   数据结构与算法综合资料库

   实用数据结构(徐士良)
  实用数据结构题解