python第二十八课——编码小常识


2.内存和硬盘:

内存:计算机硬件组成部分之一,它是一个容器,用来存储数据;处理数据速度快,

存储数据量小;断电死机数据会丢失,短暂性存储数据

硬盘:计算机硬件组成部分之一,它是一个容器,用来存储数据;处理数据速度慢,

存储数据量大,断电死机数据不会丢失,数据的持久存储

3.字节和字符

字节:计算机的存储数据的单位,底层唯一能够识别并且运算的数据

字符:人类将字节封装为另一种能直接识别的数据单位,底层还是字节

4.如何区分字节文件和字符文件

如果使用文本编辑器打开能看得懂(不会乱码)那它就是一个字符文件,

反之,它是一个字节文件

提问:常见的字节文件和字符文件有哪些?(枚举出一些)

字节文件:图片文件(.jpg、.png...)、视频文件(.avi、.mp4、.rmb...)、音频文件(.mp3...)

字符文件:.txt、.py、.java、.js、.html、.css、.php...

思考:.doc结尾的文件是字节还是字符文件?

是字节文件,因为.doc结尾的文件中既可以包含字符内容,也可以包含图片、颜色设置...操作

思考:计算机数据层面,一切皆字节,对不对?

对的;因为计算机底层唯一能够识别和运算的都是字节数据...

5.字符编码(字符集)

ascii码表:U.S.A设计出来的,范围非常小;不包含很多国家的文字,英文字符占用内存1个字节

utf-8码表:现今比较通用的一张编码表,包含了世界上所有的文字内容,范围:0~65535之间,

1个汉字占用内存3个字节,1个英文字符占用内存1个字节

gbk码表:gbk属于gb2312的扩充版,兼容了gb2312中的所有字符,加入更多的一些汉字内容,

1个汉字占用内存2个字节,1个英文字符占用内存1个字节,

在我们中国环境下,大多数情况默认的都是gbk作为编码

6.编码和解码:

编码:让数据从看的懂到看不懂,就是编码

解码:让数据从看不懂到看得懂,就是解码

【注意】

编码和解码如果不一致会怎么样?

1).会出现乱码现象

2).会报错

不管是上述的1还是2都是不理想的结果,我们都需要避免

字符串的两个函数引入:

encode(encoding,errors):对字符串数据进行编码操作,得到一个bytes类型的数据

decode(encoding,errors):对字符串数据进行解码操作,得到一个str类型的数据


演示eccode()和decode()函数的使用:
str1='哈哈呵呵'

#编码:encode()
b=str1.encode(encoding='utf-8')
print(b,type(b))

#解码:decode()
str2=b.decode('utf-8','ignore')
print(str2,type(str2))
posted @ 2019-02-26 21:05  hank-li  阅读(169)  评论(0编辑  收藏  举报