`
wangxiaohigh
  • 浏览: 1462915 次
文章分类
社区版块
存档分类
最新评论

编码史记

 
阅读更多

字符是什么

字符是什么?就是有意义的图形,比如a,中等。在不同的国家代表不同的意思。

但是在计算机世界中只有0和1,好了,如何用0和1将这些字符表示出来呢?这就是编码存在的意义。

编码一点也不高深,就是一个计算机的01和字符ab的简单映射。

于是故事开始了...

很久很久以前,计算机世界只有美国人。美国人的文字造诣很低的,他们的所有文字就只有26个字母,甚至加上大写和小写,阿拉伯数字,计算机中的控制符(回车啥的)都不超过256个(只有127个)。于是,对于他们来说,很自然,那么计算机中用8位就可以表示他们的所有字符了吧。于是他们将8位称作一个字节,计算机的8位表示的每个数字对应了一个英文字符,画了一张表(ASCII码表)。最早的编码AscII码出现了。

 

欧洲人出场了。欧洲是有好多个国家的,他们的每个国家也都有自己的文字,比如拉丁文,希腊文等。怎么办呢?于是想到,你美国人指定的ASCII码表里面不是只有127个字符吗,后面128-255的字符不是说待定吗,好吧,我们就不客气了。于是欧洲人就将各种奇怪的语言塞入127后面的字符中,形成了一系列的ISO 8859字符集。比如希腊文塞入ASCII,就形成了ISO/IEC 8859-7,西欧语种塞入ASCII就形成了ISO/IEC 8859-1,ISO/IEC 8859-1也叫做latin-1。(对,就是mysql里面经常见到的编码)

下面是ISO 8859现有的15个字符集

ISO/IEC 8859-1 (Latin-1) - 西欧语言
ISO/IEC 8859-2 (Latin-2) - 中欧语言
ISO/IEC 8859-3 (Latin-3) - 南欧语言。世界语也可用此字符集显示。
ISO/IEC 8859-4 (Latin-4) - 北欧语言
ISO/IEC 8859-5 (Cyrillic) - 斯拉夫语言
ISO/IEC 8859-6 (Arabic) - 阿拉伯语
ISO/IEC 8859-7 (Greek) - 希腊语
ISO/IEC 8859-8 (Hebrew) - 希伯来语(视觉顺序)
ISO 8859-8-I - 希伯来语(逻辑顺序)
ISO/IEC 8859-9(Latin-5 或 Turkish)- 它把Latin-1的冰岛语字母换走,加入土耳其语字母。
ISO/IEC 8859-10(Latin-6 或 Nordic)- 北日耳曼语支,用来代替Latin-4。
ISO/IEC 8859-11 (Thai) - 泰语,从泰国的 TIS620 标准字集演化而来。
ISO/IEC 8859-13(Latin-7 或 Baltic Rim)- 波罗的语族
ISO/IEC 8859-14(Latin-8 或 Celtic)- 凯尔特语族
ISO/IEC 8859-15 (Latin-9) - 西欧语言,加入Latin-1欠缺的芬兰语字母和大写法语重音字母,以及欧元(€)符号。
ISO/IEC 8859-16 (Latin-10) - 东南欧语言。主要供罗马尼亚语使用,并加入欧元符号。

 

接着伟大的中国人也开始使用上电脑了。中文可不得了,文字博大精深,字符远远超过了256个。所以我们无法使用ASCII的扩展了。怎么办呢? 1981年的时候,国家派一批人来做了这个事情,他们统计出所有的中文大概有6000多个字符(后来证明这些人的水品也是有限,好多字符都没有搜出来,于是就有了多种的中文编码),用两个字节(16bit)来表示,16bit能表示的是65536个字符,太够了。我们将16bit分为前8bit和后8bit
如果前8bit小于127(英文ASCII),那么这个8bit就是表示英文
如果前8bit大于127,那么这8bit和后面的8bit合起来表示一个中文

GB是啥意思?国标。

 

好了,后来某些领导发现,他的名字没法编码了,这个问题出来了。6000个汉字还不足以囊括所有中文,国家在1995年又组织了一批人,继续搜罗一些生僻字,一共搜集出了21886个汉字和字符,形成了GBK编码,GBK编码向下兼容GB2312。

 

K是啥意思?扩展。

 

再后来发现了,一些满文,蒙古文啥的少数名族的语言没有编辑到GBK中,继续编辑收录,形成了GB18030编码。

 

中国台湾的人民当然不能使用大陆编辑使用的GBXX系列编码了,于是他们自己搞了一套BIG5中文编码,收录了13060个汉字和字符。但是这里要注意,BIG5的编码映射表和GBXX系列的就完全不一样了,比如同一个“中”字,在BIG5和GB2312中就是两个完全不同的字节。这里就会有乱码出现了,比如("陶喆"和"陶吉吉"),各种简体中文和繁体文的转码工具就出现了。

BIG5是什么意思?
五种中文套装软体:文书处理,资料库,试算表,通讯,绘图。大致的意思是这套编码主要使用于这5个领域

 

各个国家使用各个国家自己的编码有没有很繁琐?于是大家很期盼有一种统一的编码形式出现。Unicode编码出现了。Unicode使用的通用的字符集叫做UCS。这个字符集就是一个大的字符空间,每个语种都在这个字符空间内划分一段领域。现在应用的UCS是UCS-2,意思就是不管是英文中文,统一使用两个字节(16bit)来进行字符分配。UCS-2字符集可以表示216(即65536)个字符。已经基本满足世界上所有语言了。如果不够怎么办?已经有预定方案UCS-4(用4个字节表示一个字符)。

 

切记:UTFXX是Unicode的具体实现方式。

UTF-16是Unicode最基本的实现。Unicode使用16bit表示一个字符,UTF-16就是直接将字符集的映射搬过来而已。

 

本来这样就已经很美好了,但是美国人又不干了。凭什么每个英语字符要占用2个字节?凭什么占用了我们的带宽和CPU?于是一帮英语体系的外国人讨论出了UTF-8这种字符编码。

UTF-8这种编码是怎么回事呢?
英文字符,和ASCII码一样,占用一个字节
其他语种,每种语种分配一个模板,这个模板有16bit,24bit,甚至还有32bit的。各个语种根据这个模板,将自己的语言转化成模板要求的编码(UTF-8)

 

这里演示一个中文字“汉”
比如中文分到的模板是1110xxxx 10yyyyyy 10zzzzzz
汉字的Unicode编码是0x6C49,二进制是0110 1100 0100 1001
将这个二进制按照模板的x,y,z顺序插入
得到11100110 10110001 10001001 就是E6 B1 89

 

好了…大家看出这个对中文有什么不好的吗?原先一个中文使用UTF-16只需要两个字节,但是使用UTF-8却需要3个字节,如果一个网页有1w个中文字,那么我们就需要多传输1w个字节,带宽啊!! 现在就明白了,为什么国内一些网站,比如sina,它的编码规则是使用GBK了吧!

 

下面再说一下很多编辑器的自动编码匹配的问题。编辑器会检查出你输入的字符是UTF-8还是GBK,基本根据的就是这个UTF-8模板,如果符合模板,就会判断是UTF-8。很多文章说的txt中输入“联通”存为GBK编码再打开会出现乱码就是这个原因导致的。

具体请看这篇文章

 

还有一种ANSI是什么呢?windows内核是使用UTF-16编写的,但是页面上展示的语言是根据系统设置的“语言”来展示的。ANSI就是windows系统根据你设置的语言环境而进行自动变化的一种编码。比如在中文windows系统下,ANSI就代表GBK编码,日文操作系统下就代表JIS编码。

7
9
分享到:
评论
6 楼 yxrs123456 2012-05-02  
通俗易懂,学习了。
5 楼 沙舟狼客 2012-04-24  
学校里如果每个老师都这样讲课,还有睡觉的同学吗?
4 楼 爪哇鱼 2012-04-23  
受教了
3 楼 zhangjunbao 2012-04-23  
这个写的不错!很清晰!
2 楼 tfwin2 2012-04-23  
了解过大概,没这么详细,前后事情一联系清晰多了!
1 楼 奥义之舞 2012-04-23  
了解了!

相关推荐

    史记ppt模板下载

    《史记》是中国古代一部伟大的历史著作,由西汉时期的司马迁编撰,被誉为中国史学的开山之作。在现代,人们常将这一经典融入到各种创作中,包括PPT设计。"史记ppt模板下载"这个标题暗示了这是一种以《史记》为主题...

    《史记》课件.ppt

    《史记》:史家绝唱,文史双璧 中国古代文化博大精深,其中历史学的成就尤为显著,《史记》便是这一领域的巅峰之作。它不仅是中华文明的重要组成部分,更是世界历史学宝库中的璀璨瑰宝。《史记》由西汉著名历史学家...

    浅谈史记世家写作手法与人物关系——史记萧曹相国世家分析-论文.zip

    本篇论文《浅谈史记世家写作手法与人物关系——史记萧曹相国世家分析》深入探讨了《史记》中的“世家”篇章,特别是萧何和曹参两位相国的世家,揭示了司马迁在记载历史人物时的独特写作风格及其背后的人物关系构建。...

    陕西师范大学-《史记研究》(专升本)期末考评作业-含答案.pdf

    陕西师范大学-《史记研究》(专升本)期末考评作业-含答案.pdf

    【史记〉阅读教学活动课教学教案方案和对策.doc

    在中国浩瀚的文学宝库中,《史记》以其独特的地位屹立不倒。作为中国古代第一部纪传体通史,它由西汉史学家司马迁编撰,记录了从黄帝时期直至汉武帝元狩元年(公元前122年)约三千年的历史,被称为“史家之绝唱,无...

    《史记》中的“春秋笔法”.zip

    《史记》是中国古代一部伟大的历史著作,由西汉时期的著名史学家司马迁编撰,被誉为“史家之绝唱,无韵之离骚”。它不仅是一部详尽的历史记录,而且在文学上也有极高的艺术成就,其中的“春秋笔法”更是其独特之处。...

    【《史记·孔子世家》阅读答案】 史记孔子世家翻译.docx

    "《史记·孔子世家》阅读答案" 本资源摘要信息中,我们将对《史记·孔子世家》阅读答案进行详细的分析和解释。本文主要讲述了孔子在陈蔡之间的遭遇,楚国派人聘请孔子,并且记录了孔子与弟子们的对话。 首先,我们...

    读《史记·萧相国世家》有感.doc

    读《史记·萧相国世家》有感.doc

    大学生史记读后感1500字5篇.docx

    《史记》是古代中国的一部史学巨著,其作者司马迁以其独到的历史视角和深邃的思想深度,为我们留下了一部涉及中国古代社会各个层面的宏篇巨制。这部作品不仅以其丰富的史料成为中国乃至世界文化遗产中的瑰宝,更以其...

    史记李将军列传知识点PPT教案.pptx

    《史记·李将军列传》作为我国古代伟大的历史著作《史记》中的一篇,由历史学家司马迁编撰。司马迁不仅是我国古代杰出的史学家,同时也是文学家,他的《史记》不仅是中国历史上第一部纪传体通史,而且在文学领域也...

    苏教版《〈史记〉选读》“深度学习”策略初探.pdf

    标题《苏教版〈史记〉选读“深度学习”策略初探》所探讨的是在教学《史记》选读课程时如何应用深度学习的教学理念。深度学习(Deep Learning)是人工智能领域的一个重要分支,通常用于数据挖掘、图像识别和自然语言...

    略论《史记》人物的悲剧性.doc

    略论《史记》人物的悲剧性.doc

    【《史记田敬仲完世家》阅读附答案】史记田敬仲完世家.docx

    《史记·田敬仲完世家》是司马迁《史记》中的一篇,讲述了战国时期齐国威王的故事。这篇阅读材料主要讨论了威王和魏王对于“宝”的不同理解,展现了两位君主的价值观。 在威王二十四年,威王与魏王在郊外打猎时,...

    泷川资言史记会注考证精选.pptx

    泷川资言史记会注考证精选.pptx

    fullPage百度百科史记2013效果

    "fullPage百度百科史记2013效果"是一个基于jQuery的网页设计技术,它实现了在用户滚动页面时,网站内容能整屏动态切换的视觉效果。这种效果为浏览者提供了独特的用户体验,使得网站看起来更加现代化和吸引人。在这款...

    史记及李将军列传PPT课件.pptx

    《史记》:司马迁对历史的深刻诠释与贡献 在中国古代史学领域,《史记》无疑是一座丰碑。这部由西汉时期伟大史学家司马迁编撰的史书,不仅是司马迁个人才情的集中体现,更是他对历史的深刻理解和尊重的产物。《史记...

    司马迁史记.doc

    司马迁史记.doc

    《史记-项羽本纪》中人物语言的特点[文].pdf

    "《史记-项羽本纪》中人物语言的特点" 《史记-项羽本纪》中的人物语言特点是本文的研究对象。《史记》作为我国文学史上的经典著作,对人物传记尤其关心。《项羽本纪》作为其中一篇,人物语言的特点悉数展现我国古代...

    史记读后感篇.doc

    《史记》是中国古代文学与历史的瑰宝,由西汉时期的著名史学家、文学家司马迁编撰。这部作品不仅是我国最早的一部纪传体史书,而且开创了历史著述的新纪元,对后世史学产生了深远影响。通过对《史记》的阅读,我们...

Global site tag (gtag.js) - Google Analytics