ad

《Python学习笔记 从入门到实战》_更了解Python的途径之一_2.3.1 字符编码

网友投稿 56 2023-11-07

【摘要】 本书摘自《Python学习笔记 从入门到实战》一书中第2章,第3节,由张学建编著。

2.3 编码要用心学好

2.3.1 字符编码

计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。因为最 早的计算机在设计时采用8个比特 (bit) 作为 一个字节 (byte), 所以一个字节能表示的最

大的整数就是255(二进制11111111=十进制255)。如果要表示更大的整数,就必须使用 更多的字节。比如两个字节可以表示的最大整数是65535,4个字节可以表示的最大整数是

4294967295。

又因为计算机是美国人发明的,所以最早只有127个字母被编码到计算机里,也就是大 小写英文字母、数字和一些符号,这个编码表被称为ASCⅡ 编码,比如大写字母A 的编码 是65,小写字母z 的编码是122。但是要处理中文,显然一个字节是不够的,至少需要两个 字节,而且还不能和ASCⅡ 编码冲突,所以中国制定了GB2312 编码,用来把中文编进去。

《Python学习笔记 从入门到实战》_更了解Python的途径之一_2.3.1 字符编码

概括下来,在计算机系统中常用的编码格式如下所示。

● GB2312 编码:适用于汉字处理、汉字通信等系统之间的信息交换;

●GBK 编码:是汉字编码标准之一,是在 GB2312—80 标准基础上的内码扩展规范, 使用了双字节编码;

● ASCⅡ编码:是对英语字符和二进制之间的关系做的统一规定;

● Unicode 编码:这是一种世界上所有字符的编码,当然了它没有规定存储方式;

●UTF-8 编码:是 Unicode Transformation Format-8 bit的缩写,UTF-8 是 Unicode 的一

实现方式。它是可变长的编码方式,可以使用1~4个字节表示一个字符,可以根 据不同的符号变化字节长度。

2.3.2 Unicode 编码和 UTF-8 编码

读者朋友们可以想象一下,全世界有上百种语言,如果日本人民把日文编到日文电脑 系统Shift_JIS 里,韩国人民把韩文编到韩文电脑系统 Euc-kr 里,这样各国有自己的文字标 准,就会不可避免地出现冲突。这样造成的结果就是,在多语言混合的文本中,显示出来的 内容会有乱码。为了解决不同国家、不同语言的编程问题,Unicode 编码格式便应运而生, Unicode 会把所有语言都统一到一套编码里,这样就不会再有乱码问题了。

Unicode 标准也在不断发展,但最常用的是用两个字节表示一个字符(如果要用到非常 偏僻的字符,就需要4个字节)。现代操作系统和大多数编程语言都直接支持Unicode 编码 格式。下面看一看 ASCⅡ 编码和 Unicode编码的区别,ASCⅡ 编码是1个字节,而 Unicode 编码通常是2个字节。例如:

● 字母A 用 ASCⅡ 编码是十进制的65,二进制的01000001;

● 字符0用ASCⅡ 编码是十进制的48,二进制的00110000,注意字符‘0’和整数0是 不同的;

●汉字中已经超出了ASCⅡ 编码的范围,用Unicode编码是十进制的20013,二进制的 0100111000101101。

如果把 ASCⅡ编码的A 用 Unicode 编码表示,只需要在前面补0就可以。因此,A 的 Unicode编码是0000000001000001。那么新的问题又出现了:如果统一成Unicode 编码,乱码 问题从此消失了。但是,如果你写的文本基本上全部是英文的话,用 Unicode 编码比ASCⅡ 编 码需要多一倍的存储空间,在存储和传输上就十分不方便。所以,本着节约的精神,又出现了 把Unicode 编码转化为“可变长编码”的UTF-8编码。UTF-8编码把一个Unicode 字符根据不同 的数字大小编码成1~6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节, 只有很生僻的字符才会被编码成4~6个字节。如果你要传输的文本包含大量英文字符,使用 UTF-8 编码就能节省空间。如表2-1 所示的对比。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 [email protected] 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:跟着一起学《Excel VBA跟卢子一起学 早做完 不加班 基础入门版》_3.3.3 条件循环
下一篇:《深入理解 Java 虚拟机 JVM 高级特性与最佳实践(第3版)》_求知之路漫漫_3.4.3 安全区域
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×