07 字符编码

1.字符编码
字符编码针对的是文字无需考虑‘视屏、音频’等

2.编写文本的过程
输入的字符 >>>(字符编码表)>>> 二进制数字

2.1字符编码表:
就是字符与数字的对应关系
a 0
b 1
a 00
b 01
c 11
d 10

2.2ASCII码表
用八位二进制表示一个英文字符 所有的英文字符+符号最多也就在125位左右
0000 0000
1111 1111
2.3GBK
用2Bytes表示一个中文字符 还是用1Bytes表示一个英文字符
0000 0000 0000 0000
1111 1111 1111 1111 最多能表示65535个字符
2.4万国码unicode
统一用2Bytes表示所有的字符
a 0000 0000 0010 1010

产生的问题:
1.浪费存储空间
2.io次数增减,程序运行效率降低(致命)

额外:
内存中的编码和硬盘的编码是不一样的

1.存储数据的过程:
内存中的unicode(万国码)》》》编码(endode)》》》硬盘中的utf——8格式(该格式是二进制数)
2.读出数据的过程:
硬盘中的utf-8二进制数据》》》解码(decode)》》》内存中的unicode(万国码)

3.乱码:
当存在硬盘的编码,与运行环境的编码不一致则出现乱码。

保证不乱码的核心:
以什么编码,用对应的编码解码即可
4.python2和Python3中编码的区别:
4.1python2
将py文件按照文本文件读入解释器中默认使用ASCII码(因为在开发python2解释器的unicode还没有盛行)

4.1.2文件头
# coding:utf-8
4.2python3

将py文件按照文本文件读入解释器中默认使用utf-8
4.3
补充:
1.pycharm终端用的是utf-8格式
2.windows终端采用的是gbk

猜你喜欢

转载自www.cnblogs.com/ZDQ1/p/11146068.html
07
今日推荐