计算机编码与Python的编码

本文介绍了计算机编码的基础知识,包括ASCII、ANSI、GB2312、GBK、GB18030和UNICODE等编码,以及UTF-8编码的特点。接着详细探讨了Python2和Python3的编码处理,包括默认编码类型、字符串类型和编码转换。最后讨论了软件的默认编码、文件保存和打开时可能出现的编码问题及其解决方案。

计算机编码与Python的编码

1 编码知识

1.1 概念

  • 信息: 狭义上是人类活动中所需相互传达的某种信号。

  • 数据: 是携带信息的介质。这种介质有多种格式,可能是:数字,音频,视频,文字等等。简单的来讲,数字是一种工具,1是数字的一个内容,但是如果数字为工具,表达数量的概念。那么‘1个苹果’,‘1个人’就是我们所需传达、被理解的信号。

  • 编码:编码是信息从一种形式(数据,如汉字)或格式转换为另一种形式的过程。所以说,宏观的讲,编码也是携带数据、信息的一种介质,是计算机生成的一种介质。计算机不能读懂汉字,但是能通过编码,识别操作。

  • 解码: 解码是受传者将接受到的符号或代码还原为信息的过程,与编码过程相对应。

 简单来说,从明文到编码文字,称为"编码"。从编码文字解释出到明文,称为"解码"。

1.2 六种编码文字

  1. ASCII: 计算机存储数据是用了一个个电阻单元,打开为:1,关闭为: 0,称为1bit,也正为1位。最早,美国人用八个电阻去表达字符符,也就能表达256个不同的字符,英文单词才有26个,加上一些特殊字符也绰绰有余了。如字符A -> 00010001。

  2. ANSI: 扩展的ASCII码,早期的字符刚满128个。所以第8位往往是0。为了表示更多字符,有扩展了第八位。共可表达256位字符,其中包含了一些拉丁文。

  3. GB2312: 在中国日新月异的发展当中,计算机编码也传递了过来。但是,之前的编码不能表达汉字。所以1980年,我国自主研发了GB2312编码。把第8位对应的拉丁文删除。将二进制数值小于127的字符意义不变,仍表示英文字符和一些特殊字符;但将大于127的字符,于另一大于127的字符自由组合,表示为一个特定的汉字。简单来说,就是两个大于127的字节表示一个中文汉字。共能表示7000多个汉字。其也算是对ASCII编码的扩展。

  4. GBK与GB18030: 但是7000个汉字,是不够用的。所以,之后扩展为,当第一个字节大于127,后接随意字节,就表示为一个汉字。在GB2312的基础上,又增加了20000多个汉字(包含一些繁体字和符号)。

  5. UNICODE: 该编码用两个字节表示一个字符,256*256 = 65536 个。 共可以表示6万5千多种不

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值