编码格式区别.doc

编码格式区别.doc

ID:59333429

大小:69.00 KB

页数:7页

时间:2020-09-04

编码格式区别.doc_第1页
编码格式区别.doc_第2页
编码格式区别.doc_第3页
编码格式区别.doc_第4页
编码格式区别.doc_第5页
资源描述:

《编码格式区别.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、医疗事业部ASCII是一种字符集,包括大小写的英文字母、数字、控制字符等,它用一个字节表示,范围是0-127由于ASCII表示的字符非常有限,各个国家或者地区在此基础上提出了自己的字符集,比如在中国应用非常广泛的GB2312,它为汉字提供了编码,用两个字节表示。这些字符集之间互不兼容,相同的数字可能表示不同的字符,为信息交流带来了麻烦。Unicode是一种字符集,它将世界上的所有字符映射成一个唯一的数字(codepoint),比如字母a对应的数字0x0041。目前Unicode还处于发展中,它所包容的字符越来越多。在将Unicode表示

2、的字符进行存储时,还需要一定的编码方式,比如UCS-2,它用两个字节来表示Unicode编码的字符。而UTF-8是Unicode字符集的另外一种编码方式,它是变长度的,最多6个字节,小于127的字符用一个字节表示,与ASCII字符集的结果一样,因而具有非常好的兼容性,ASCII编码下的英语文本不需要修改就可以当作UTF-8编码进行处理,应用非常广泛。Python从2.2开始支持Unicode,函数decode(char_set)可以实现其它编码到Unicode的转换,函数encode(char_set)可以实现Unicode到其它编码方

3、式的转换,这里所讲的UnicodeString是指UCS-2或者UCS-4编码的CodePoints。比如("你好").decode("GB2312")将得到u'u4f60u597d',即"你"和“好"的Unicode码分别是0x4f60和0x597d再用(u'u4f60u597d').encode("UTF-8")将得到'xe4xbdxa0xe5xa5xbd',它是 “你好”的UTF-8编码结果。下面就是我的笔记,主要用来整理自己的思路。但是,我尽量试图写得通俗易懂,希望能对其他朋友有用。毕竟,字符编码是计算机技术

4、的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识。1.ASCII码我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码,一直沿用至今。ASCII码一共规定了128个字

5、符的编码,比如空格“SPACE”是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。7医疗事业部2、非ASCII编码英语用128个符号编码就够了,但是用来表示其他语言,128个符号是不够的。比如,在法语中,字母上方有注音符号,它就无法用ASCII码表示。于是,一些欧洲国家就决定,利用字节中闲置的最高位编入新的符号。比如,法语中的é的编码为130(二进制10000010)。这样一来,这些欧洲国家使用的编码体

6、系,可以表示最多256个符号。但是,这里又出现了新的问题。不同的国家有不同的字母,因此,哪怕它们都使用256个符号的编码方式,代表的字母却不一样。比如,130在法语编码中代表了é,在希伯来语编码中却代表了字母Gimel(ג),在俄语编码中又会代表另一个符号。但是不管怎样,所有这些编码方式中,0—127表示的符号是一样的,不一样的只是128—255的这一段。至于亚洲国家的文字,使用的符号就更多了,汉字就多达10万左右。一个字节只能表示256种符号,肯定是不够的,就必须使用多个字节表达一个符号。比如,简体中文常见的编码方式是GB2312,使

7、用两个字节表示一个汉字,所以理论上最多可以表示256x256=65536个符号。中文编码的问题需要专文讨论,这篇笔记不涉及。这里只指出,虽然都是用多个字节表示一个符号,但是GB类的汉字编码与后文的Unicode和UTF-8是毫无关系的。3.Unicode正如上一节所说,世界上存在着多种编码方式,同一个二进制数字可以被解释成不同的符号。因此,要想打开一个文本文件,就必须知道它的编码方式,否则用错误的编码方式解读,就会出现乱码。为什么电子邮件常常出现乱码?就是因为发信人和收信人使用的编码方式不一样。可以想象,如果有一种编码,将世界上所有的符

8、号都纳入其中。每一个符号都给予一个独一无二的编码,那么乱码问题就会消失。这就是Unicode,就像它的名字都表示的,这是一种所有符号的编码。Unicode当然是一个很大的集合,现在的规模可以容纳100多万个

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。